分类
浏览器

两招开启chromium代码风格检测工具

第一招。安装clang插件

1.clang 插件安装

我使用的环境是VS2019,所以安装插件就很简单了。

20241218175705179

20241218175705733

然后点击安装就可以了。

再次打开VS2019,就可以看到这里的快捷键了

20241218175705423

2.VS 配置

2024121817570696120241218175706467

到这里我们就可以使用chromium风格了。

使用方法:每次写完代码,按下组合键Ctrl+R Ctrl+D 就会自动帮你格式化代码了。

第二招.cpplint安装

Google也提供了一个工具,可以帮助我们检查代码风格,是否满足要求。

前提条件:需要安装Python环境

1
pip install cpplint

安装完成之后,输入你要检测的文件,就会输出检测的结果。当然还有更多的用法,cpplint -h自行查看了。

1
cpplint test.cpp

结果如下:

20241218175707592

 

分类
网络技术

全球域名后缀

.com 、.net、.org、.tv、.cc、.info、.com.cn、.net.cn、.org.cn、.cn、.us、.biz、.中国、.公司、.网络等国际域名和中文国内域名
世界各地域名后缀对照表
世界各国域名表
ad: Andorra , 安道尔
ae: United Arab Emirates , 阿联酋
af: Afghanistan , 阿富汗
ag: Antigua and Barbuda , 安提瓜和巴布达
ai: Anguilla , 安格拉
al: Albania , 阿尔巴尼亚
am: Armenia , 亚美尼亚
an: Netherlands Antilles , 荷兰属地
ao: Angola , 安哥拉
aq: Antarctica , 南极洲
ar: Argentina , 阿根廷
as: American Samoa , 东萨摩亚
at: Austria , 奥地利
au: Australia , 澳大利亚
aw: Aruba , 阿鲁巴
az: Azerbaijan , 阿塞拜疆
ba: Bosnia Hercegovina , 波黑
bb: Barbados , 巴巴多斯
bd: Bangladesh , 孟加拉国
be: Belgium , 比利时
bf: Burkina Faso , 布基纳法索
bg: Bulgaria , 保加利亚
bh: Bahrain , 巴林
bi: Burundi , 布隆迪
bj: Benin , 贝宁
bm: Bermuda , 百慕大
bn: Brunei Darussalam , 文莱达鲁萨兰国
bo: Bolivia , 玻利维亚
br: Brazil , 巴西
bs: Bahamas , 巴哈马
bt: Bhutan , 不丹
bv: Bouvet Island , 布韦群岛
bw: Botswana, 伯兹瓦纳
by: Belarus, 白俄罗斯
bz: Belize , 伯利兹
ca: Canada , 加拿大
cc: Cocos Islands , 科科斯群岛
cf: Central African Republic , 中非共和国
cg: Congo , 刚果
ch:tzerland , 瑞士
ci: Ivory Coast, 象牙海岸
ck: Cook Islands , 库克群岛
cl: Chile , 智利
cm: Cameroon , 喀麦隆
cn: China , 中国
co: Colombia , 哥伦比亚
cq: Equatorial Guinea , 赤道几内亚
cr: Costa Rica , 哥斯达黎加
cu: Cuba , 古巴
cv: Cape Verde , 佛得角
cx: Christmas Island, 圣诞岛(英属)
cy: Cyprus , 塞浦路斯
cz: Czech Republic , 捷克共和国
de: Germany , 德国
dj: Djibouti , 吉布提
dk: Denmark , 丹麦
dm: Dominica , 多米尼加联邦
do: Dominican Republic , 多米尼加共和国
dz: Algeria , 阿尔及利亚
ec: Ecuador , 厄瓜多尔
ee: Estonia , 爱沙尼亚
eg: Egypt , 埃及
eh: Western Sahara , 西萨摩亚
es: Spain , 西班牙
et: Ethiopia , 埃塞俄比亚
ev: El Salvador , 萨尔瓦多
fi: Finland , 芬兰
fj: Fiji , 斐济
fk: Falkland Islands , 福克兰群岛
fm: Micronesia , 密克罗尼西亚
fo: Faroe Islands , 法罗群岛
fr: France , 法国
ga: Gobon, 加蓬
gb: Great Britain (UK) , 大不列颠联合王国
gd: Grenada , 格林纳达
ge: Georgia , 格鲁吉亚
gf: French Guiana , 法属圭亚那
gh: Ghana , 加纳
gi: Gibraltar , 直布罗陀
gl: Greenland , 格陵兰群岛
gm: Gambia , 冈比亚
gn: Guynea , 几内亚
gp: Guadeloupe, 瓜德罗普岛(法属)
gr: Greece ,希腊
gt: Guatemala , 危地马拉
gu: Guam , 关岛
gw: Guinea-Bissau , 几内亚比绍
gy: Guyana , 圭亚那
hk: Hong Kong , 香港
hm: Heard
hn: Honduras , 洪都拉斯
hr: Croatia , 克罗蒂亚
ht: Haiti , 海地
hu: Hungary , 匈牙利
id: Indonesia , 印度尼西亚
ie: Ireland , 爱尔兰共和国
il: Israel , 以色列
in: India , 印度
io: British Indian Ocean Territory, 英属印度洋领地
iq: Iraq , 伊拉克
ir: Iran , 伊朗
is: Iceland , 冰岛
it: Italy , 意大利
jm: Jamaica , 牙买加
jo: Jordan , 约旦
jp: Japan , 日本
ke: Kenya , 肯尼亚
kg: Kyrgyzstan , 吉尔吉斯斯坦
kh: Cambodia , 柬埔塞
ki: Kiribati , 基里巴斯
km: Comoros , 科摩罗
kn: St. Kitts
kp: Korea-North , 北朝鲜
kr: Korea-South , 南朝鲜
kw: Kuwait , 科威特
ky: Cayman Islands, 开曼群岛(英属)
kz: Kazakhstan , 哈萨克斯坦
la: Lao People/’s Republic , 老挝人民共和国
lb: Lebanon , 黎巴嫩
lc: St. Lucia, 圣露西亚岛
li: Liechtenstein , 列支敦士登
lk: Sri Lanka , 斯里兰卡
lr: Liberia , 利比里亚
ls: Lesotho , 莱索托
lt: Lithuania , 立陶宛
lu: Luxembourg , 卢森堡
lv: Latvia , 拉脱维亚
ly: Libya , 利比亚
ma: Morocco , 摩洛哥
mc: Monaco , 摩纳哥
md: Moldova , 摩尔多瓦
mg: Madagascar , 马达加斯加
mh: Marshall Islands , 马绍尔群岛
ml: Mali , 马里
mm: Myanmar, 缅甸
mn: Mongolia , 蒙古
mo: Macau , 澳门
mp: Northern Mariana Islands, 北马里亚纳群岛
mq: Martinique , 马提尼克岛(法属)
mr: Mauritania , 毛里塔尼亚
ms: Montserrat, 蒙塞拉特岛
mt: Malta , 马尔他
mv: Maldives , 马尔代夫
mw: Malawi , 马拉维
mx: Mexico , 墨西哥
my: Malaysia , 马来西亚
mz: Mozambique , 莫桑比克
na: Namibia , 纳米比亚
nc: New Caledonia, 新喀里多尼亚
ne: Niger , 尼日尔
nf: Norfolk Island, 诺福克岛
ng: Nigeria , 尼日利亚
ni: Nicaragua , 尼加拉瓜
nl: Netherlands , 荷兰
no: Norway , 挪威
np: Nepal , 尼泊尔
nr: Nauru , 瑙鲁
nt: Neutral Zone , 中立区
nu: Niue, 纽埃
nz: New Zealand , 新西兰
om: Oman , 阿曼
pa: Panama , 巴拿马
pe: Peru , 秘鲁
pf: French Polynesia , 法属玻利尼西亚
pg: Papua New Guinea , 巴布亚新几内亚
ph: Philippines , 菲律宾
pk: Pakistan , 巴基斯坦
pl: Poland , 波兰
pm: St. Pierre
pn: Pitcairn Island, 皮特克恩岛
pr: Puerto Rico , 波多黎各
pt: Portugal , 葡萄牙
pw: Palau , 帕劳
py: Paraguay , 巴拉圭
qa: Qatar , 卡塔尔
re: Reunion Island, 留尼汪岛(法属)
ro: Romania , 罗马尼亚
ru: Russian Federation , 俄罗斯联邦
rw: Rwanda , 卢旺达
sa: Saudi Arabia , 沙特阿拉伯
sb: Solomon Islands , 所罗门群岛
sc: Seychelles , 塞舌尔
sd: Sudan , 苏旦
se: Sweden , 瑞典
sg: Singapore , 新加坡
sh: St. Helena , 海伦娜
si: Slovenia , 斯洛文尼亚
sj: Svalbard
sk: Slovakia , 斯洛伐克
sl: Sierra Leone , 塞拉利昂
sm: San Marino , 圣马力诺
sn: Senegal , 塞内加尔
so: Somalia , 索马里
sr: Suriname , 苏里南
st: Sao Tome
su: USSR , 苏联
sy: Syrian Arab Republic , 叙利亚
sz: Swaziland , 斯威士兰
tc: Turks
td: Chad , 乍得
tf: French Southern Territories , 法属南半球领地
tg: Togo , 多哥
th: Thailand , 泰国
tj: Tajikistan , 塔吉克斯坦
tk: tokelau, 托克劳群岛(可以免费申请:如  badegg.tk  tomcat.tk)
tm: Turkmenistan , 土库曼斯坦
tn: Tunisia , 突尼斯
to: Tonga , 汤加
tp: East Timor , 东帝汶
tr: Turkey , 土耳其
tt: Trinidad
tv: Tuvalu , 图瓦鲁
tw: Taiwan , **
tz: Tanzania , 坦桑尼亚
ua: Ukrainian SSR , 乌克兰
ug: Uganda , 乌干达
uk: United Kingdom , 英国
us: United States , 美国
uy: Uruguay , 乌拉圭
va: Vatican City State , 梵地冈
vc: St. Vincent
ve: Venezuela , 委内瑞拉
vg: Virgin Islands : 维京群岛
vn: Vietnam , 越南
vu: Vanuatu , 瓦努阿图
wf: Wallis
ws: Samoa , 东萨摩亚
ye: Yemen , 也门
yu: Yugoslavia , 南斯拉夫
za: South Africa , 南非
zm: Zambia , 赞比亚
zr: Zaire , 扎伊尔
zw: Zimbabwe , 津巴布韦
———————————–

分类
浏览器

chromium

国内git镜像

Gitee 极速下载/chromium

百度百科:chromium(Google Chromium)_百度百科 (baidu.com)

 

Chromium是由Google主导开发的网页浏览器。以BSD许可证等多重自由版权发行并开放源代码,Chromium的开发可能早自2006年即开始。Chromium是GoogleGoogle Chrome浏览器背后的引擎,其目的是为了创建一个安全、稳定和快速的通用浏览器。
软件名称Chromium
软件平台跨平台(Windows、Linux、Mac OS X、BSD、Android)
软件语言多语言(英文、中文、法文、德文等)
开发商Google
软件授权BSD
软件版本68.0.3440.0

目录

简介

播报

编辑
Chromium是一个由Google主导开发的网页浏览器。以BSD许可证等多重自由版权发行并开放源代码。Chromium的开发可能早自2006年即开始,设计思想基于简单、高速、稳定、安全等理念,在架构上使用了Apple发展出来的WebKit排版引擎、Safari的部份源代码与Firefox的成果,并采用Google独家开发出的V8引擎,以提升解译JavaScript的效率,而且设计了“沙盒”、“黑名单”、“无痕浏览”等功能,来实现稳定与安全的网页浏览环境。Chromium是Google为发展自家的浏览器Google Chrome(以下简称Chrome)而开启的计划,所以Chromium相当于Chrome的工程版或称实验版(尽管Chrome自身也有β版阶段),新功能会率先在Chromium上实现,待验证后才会应用在Chrome上,故Chrome的功能会相对落后、稳定。Chromium的更新速度很快,每隔数小时即有新的开发版本发布,而且可以免安装,下载zip封装版后解压缩即可使用(Windows下也有安装版)。Chrome虽然理论上也可以免安装,但Google仅提供安装版。
Chromium和Chrome所使用的webkit内核,是公认的最快的网页浏览方式。
使用Chromium开源代码(基于webkit内核)的浏览器有360极速浏览器枫树极速浏览器太阳花浏览器、世界之窗极速版、傲游浏览器UC浏览器电脑版等。搜狗高速浏览器和qq浏览器官网未提及Chromium,只是说采用webkit内核,经网友测试这两款浏览器,极有可能也是使用的Chromium,只是官方不承认而已。
2018年8月16日晚,红芯时代(北京)科技有限公司发布声明称:红芯浏览器内核是基于通用的浏览器内核架构(即Chromium开源项目,但不是Chrome浏览器)的基础上进行技术创新的;区别于传统的浏览器,红芯浏览器是专门针对企业办公场景设计的,国际上浏览器内核技术是不断迭代更新的,红芯浏览器内核 Redcore是基于 Chromium/Blink。 [3]
分类
技术文章 无分类

免费使用SonarQube审查C/C++代码

一、背景

SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误。SonarQube有很多版本(社区版、开发人员版、企业版等),只有社区版是免费使用,但该版本不支持C/C++语言的静态代码分析。下面通过配备一些免费的插件集成到SonarQube以达到审查C/C++代码的目的。

二、工具准备(附本例版本)

三、部署环境

1、JDK

(1)下载JDK时保存好安装路径
bc58ad5a865b4ff28b69e5216b9faff0
(2)配置系统环境变量
新建系统变量:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.8.0_331(jdk安装路径)

627bd1d7f2514ac4b8cbc529816e81e4

新建系统变量:CLASSPATH
变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
1c0a2ffa146b44edbaa14747154f4445

编辑Path环境变量
添加:%JAVA_HOME%\bin
%JAVA_HOME%\jre\bin
e7bd8d6f56e74d9cb5202f00070f481f
(3)验证测试
在cmd窗口中运行java、javac、java -version语令不报错即配置成功。
e0b0121569fa4eecaca865484a791c7c

2、SonarQube

(1)下载好sonarqube后,解压打开bin目录,启动对应OS目录下的StartSonar。如本例使用的是win的64位系统,则打开…\bin\windows-x86-64\StartSonar.bat
a006f0f7fa7f43d6bce6e935b272e2e8
(2)启动浏览器访问http://localhost:9000,如出现下图则安装成功
第一次登陆,默认Login、Password为:admin
cc88e2a6949b472da4cf822b29b34043
(3)登陆Sonarqube后如需下载中文包,请按以下步骤安装插件(需联网)
Administration->Marketplace
987cbef98bcc4fb7bbbfba726ad77019

3、Sonar-cxx

将下载好的.jar文件,放到你的sonarqube目录/extensions/plugins目录下,重启SonarQube生效(此处报错重启PC能解决大部分问题)。Language中出现cxx则配置成功。
aaed5c99dafb44bc9720d79558147b62

4、Sonar-scanner

(1)下载好后解压打开bin目录、配置环境变量
编辑Path环境变量,将Sonar-scanner的bin目录添加进去
69cea6befda14eba8a8b7b120496885d
(2)cmd中验证是否配置成功
743b06efef6949a2ab5792851a66bb34

5、Cppcheck

(1)安装路径添加到Path环境变量
472686e1a8a34564bad007d56e165bf9
572984498f884506843d1c090006922c
(2)cmd中验证是否配置成功
fb1cafd149224f40a35c5c9dfb29b98d

四、实战

1、Sonarqube自定义cxx规则

在sonarqube平台质量配置页面,新增cxx的质量配置项并激活更多规则
eb9bc382d2054c0192cfc25944e01b5d

——>
b25fc064cbd94417a20ea42e33d714d7

——>
95c26595ed2f4e398bd6b44e866a3925

——>
d54c68ac799b4fd5bfca48ee74e8527a

——>
21746266cdba4843916efe29c3d440ec

激活完成后,将该规则项设置为默认
7217199590fd4a738619f00a5cb62256

2、使用Cppcheck对项目代码进行分析

在项目文件夹的根目录下使用cppcheck工具扫描代码,结果记录到cppcheck-report.xml中
语令:cppcheck –xml –xml-version=2 –enable=all ./ 2>cppcheck-result.xml
注:扫描时间会有些长,等待完成后再进行下一步操作
55ba34053b9a45348a1f01399b51777f

项目根目录下生成的cppcheck-report.xml文件
38ee5630b4174a94aafe088fe83a0518

3、配置项目的一些必要信息

(1)在项目的根目录创建sonar-project.properties文件
b08c8d969e954b46b95bfb6f1f807fa5

(2)文件内容:

#sonarqube中相对应项目的key(可省)
#sonar.projectKey=TestMemory

#sonarqube中相对应项目的名字(可省)
#sonar.projectName= TestMemory

#sonar检测的编程语言种类
sonar.language=c++

#sonar检测的源文件目录,‘.’表示当前根目录下的所有文件目录
sonar.sources=.

#项目各文件的后缀名(可在sonarqube中定义)
sonar.cxx.file.suffixes=.cxx,.cpp,.c,.cc,.hxx,.hh,.h,.handles

#cppcheck生成的Report名称(可在sonarqube中定义)
sonar.cxx.cppcheck.reportPaths=cppcheck-result.xml

(3)在sonarqube中定义项目各文件的后缀名:
10e083b32aaa4f81856351e66009c7a9
(4)在sonarqube中定义cppcheck生成的Report名称:
e361a82df77e48f29617bc046b59f4ad
注:sonarqube中的设定比sonar-project.properties文件里的设定优先级要高

4、Sonarqube创建项目

e2a6c0dcaa704d4dad0083e9badd7dd0

——>
a173a7202c5349008df51e40d5647eda

——>
6498cd8923bb4867ba20f08f3fb11da1

——>
5349f2888a874217a692b00698319f60

5、使用sonar-scanner进行代码的静态扫描

复制sonar-scanner语令:
c277fb41316944e0b1bcf1e8e0039b1d

项目根目录下打开cmd执行上面Copy的语令:
9a00241b6cce44efa81dabdbdc95a46c

在Sonarqube上查看结果:
0ee4b29372e849ddb00c981e5967df9c