cmake构建静态可执行程序
时间: 2024-07-30 18:01:21 浏览: 182
cmake编译静态库/动态库/可执行文件demo
CMake是一个开源的、跨平台的自动化构建系统,它主要用于管理和构建C/C++项目。构建静态可执行程序,意味着编译后的目标文件不会包含动态链接库,程序可以在没有对应库的情况下独立运行。
在CMake中构建静态可执行程序通常需要设置一些选项:
1. **选择构建类型**:添加`-DCMAKE_BUILD_TYPE=Release`到CMake命令行中,这将生成优化的静态库和静态链接的目标。
```sh
cmake -DCMAKE_BUILD_TYPE=Release ..
```
2. **指定链接方式**:在`add_executable`指令中,设置`STATIC_LIBRARY`或`STANDARD_EXCLUDE_FROM_ALL`为true,强制编译为静态链接。
```cmake
add_executable(<your_app> src1.c src2.cpp STATIC_LIBRARY)
```
3. **排除共享库依赖**:如果某些库是默认的动态链接,你需要明确指定它们为静态链接,例如`find_package(Boost REQUIRED COMPONENTS system filesystem static)`。
4. **配置构建规则**:CMakeLists.txt文件中需要配置适当的规则,如使用`target_link_libraries`来连接静态库,而不是`link_directories`。
5. **生成并构建**:最后,使用`cmake --build . --config Release`生成静态版本的可执行文件。
阅读全文