在实际工作中推荐使用CMake构建C++项目,CMake是用于构建、测试和软件打包的开源跨平台工具;
特性:
- 自动搜索可能需要的程序、库和头文件的能力;
- 独立的构建目录(如
build
),可以安全清理 - 支持复杂的自定义命令(下载、生成各种文件)
- 自定义配置可选组件
- 从简单的文本文件(
CMakeLists.txt
)自动生成工作区和项目的能力 - 在主流平台上自动生成文件依赖项并支持并行构建
- 几乎支持所有的IDE
静态链接库和动态链接库
所谓静态和动态,其区别是链接的阶段不一样。
静态链接库链接发生在编译环节,库名称为.a(archicve library),最终输出的库或可执行文件会将静态连接库打包到工程的输出文件中(可执行文件或库),因此文件较大。
动态链接库链接发生在程序执行过程中,库名称为.so(shared object) , 动态库加载后,在内存中仅仅保存一份拷贝,多个程序依赖它,不会重复加载。
a. 命令行编辑
安装pkg-config
sudo apt-get install pkg-config
pkg-config 是一个工具,用于查找和管理安装在系统上的库文件,--cflags --libs gflags 表示查找gflags库的头文件和库文件路径, -o main 表示输出的文件名字
g++ main.cpp `pkg-config --cflags --libs gflags` -o main
b. CMake
安装方法一:
sudo apt install cmake -y
安装方法二:
# 以v3.25.1版本为例
git clone -b v3.25.1 https://github.com/Kitware/CMake.git
cd CMake
# 你使用`--prefix`来指定安装路径,或者去掉`--prefix`,安装在默认路径。
./bootstrap --prefix=<安装路径> && make && sudo make install
# 验证
cmake --version
vscode插件:
安装 twxs.cmake ms-vscode.cmake-tools
使用CMake:
# 第一步:配置,-S 指定源码目录,-B 指定构建目录
cmake -S . -B build
# 第二步:生成,--build 指定构建目录
cmake --build build
# 运行
./build/first_cmake