芯片介绍 编译工具介绍 基本编码规范 常用库说明
- 2015-01-10 23:08:00
- admin
- 原创 3460
一、芯片介绍
芯片分类:
1、CPU,Central Processing Unit,中央处理器,复杂计算,芯片内部结构不可改变;
2、GPU,Graphics Processing Unit,图形处理器,简单计算,芯片内部结构不可改变;
3、FPGA,Field Programmable Gate Array,现场可编程门阵列,芯片内部结构可以改变;
CPU架构:
1、I386、I586、I686是32位CPU,数字越大,指令集越丰富;
2、X86_64是64位CPU,也叫Amd64,X代表3、5、6等;
3、Armv7是32位Arm架构,Armv8是64位Arm架构,也叫AArch64;
二、编译工具介绍
vc编译器版本:
vs2019 平台工具集v142
vs2017 平台工具集v141
vs2015 平台工具集v140
vs2013 平台工具集v120
vs2012 平台工具集v110
vs2010 平台工具集v100
vs2008 平台工具集v90
cmake使用介绍:
1、cmake是跨平台的构建工具,本身依赖vc或make,最新版本是cmake3;
2、CMakeLists.txt是构建描述文件,定义构建什么可执行文件,是必须文件;
3、CMakePresets.json是构建配置文件,定义如何调用构建,是可选文件;
4、生成构建文件:cmake -B build,cmake --preset debug
5、生成可执行文件:cmake --build build,make
三、基本编码规范
1、源文件使用UTF8编码;
2、文本编辑器字体使用12号;
3、代码缩进使用TAB,长度是4个空格;
4、C语言花括号换行,其他语言花括号不换行;
5、Java异常适合用于异常处理,不适合用于控制流;
四、各种语言字符串的单双引号
c++、java支持双引号;
shell、php、lua支持双引号、单引号,使用双引号;
python、js支持双引号、单引号,使用单引号;
总结:
1、脚本语言一般同时支持双引号和单引号;
2、shell和php使用单引号时不转义;
3、python和js默认使用单引号;
五、常用库说明
1、C++标准库:https://cplusplus.com
2、C++扩展库:https://www.boost.org/libraries/latest/categorized
3、linux系统调用:https://man7.org/linux/man-pages/man2/syscalls.2.html
4、CLI11命令行参数解析:https://github.com/CLIUtils/CLI11
libevent事件通知库:
代码仓库:https://github.com/libevent/libevent
官方网址:https://libevent.org
使用案例:chrome、memcached
libevent编译构建:
mkdir -p build && cd build
cmake -DEVENT__DISABLE_OPENSSL=ON ..
cmake -DCMAKE_INSTALL_PREFIX=PREFIX_DIR \
-DEVENT__ENABLE_OPENSSL=ON \
-DOPENSSL_ROOT_DIR=OPENSSL_DIR ..
make && make install
spdlog日志库:
代码仓库:https://github.com/gabime/spdlog
编译构建:cd spdlog && mkdir -p build && cd build
编译构建:cmake .. && cmake --build .
pcre正则表达式库:
特点:相比boost更加轻量、速度更快;
使用案例:apache、nginx
zlib压缩库:
特点:无损压缩,使用deflate算法;
gzip:一种数据格式,使用deflate算法进行压缩;
deflate:一种压缩算法,huffman编码加强版;
使用案例:apache、openssl、protobuf