Cmake -static编译
时间: 2024-02-24 12:52:01 浏览: 42
CMake是一个跨平台的开源构建工具,它可以用于自动生成各种不同编译系统的构建文件(如Makefile、Visual Studio项目等),从而实现跨平台的代码构建。CMake支持静态编译,即将所有依赖的库都链接到生成的可执行文件中,使得可执行文件在其他机器上运行时不再依赖外部的动态链接库。
在使用CMake进行静态编译时,可以通过设置CMake变量来指定静态编译的方式。其中,使用CMake的`-D`选项可以设置变量的值。对于静态编译,可以使用`-D BUILD_SHARED_LIBS=OFF`来禁用动态链接库的构建,同时使用`-D CMAKE_EXE_LINKER_FLAGS="-static"`来指定链接器使用静态链接。
下面是一个示例的CMakeLists.txt文件,展示了如何使用CMake进行静态编译:
```cmake
cmake_minimum_required(VERSION 3.0)
project(MyProject)
# 设置编译类型为Release
set(CMAKE_BUILD_TYPE "Release")
# 禁用动态链接库的构建
set(BUILD_SHARED_LIBS OFF)
# 设置链接器使用静态链接
set(CMAKE_EXE_LINKER_FLAGS "-static")
# 添加源文件
add_executable(MyExecutable main.cpp)
# 添加其他依赖库
target_link_libraries(MyExecutable PRIVATE library1 library2)
```
在上述示例中,通过设置`BUILD_SHARED_LIBS`变量为`OFF`来禁用动态链接库的构建,通过设置`CMAKE_EXE_LINKER_FLAGS`变量为`-static`来指定链接器使用静态链接。然后,通过`add_executable`命令添加源文件,并通过`target_link_libraries`命令添加其他依赖库。
希望以上信息能够帮助到你!如果有任何进一步的问题,请随时提问。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)