cmake 多文件编译
时间: 2023-07-28 22:07:25 浏览: 144
CMake添加引用多个子目录多个CMakeLists同时编译
5星 · 资源好评率100%
在 CMake 中进行多文件编译,通常需要创建一个项目并指定其源代码目录。在 CMakeLists.txt 文件中,你需要使用 `add_executable()` 函数或 `add_library()` 函数来创建目标,并将其源文件列表传递给函数。例如:
```
# 指定项目名称和源代码目录
project(MyProject)
set(SRC_LIST main.cpp foo.cpp bar.cpp)
# 创建可执行文件 MyProject,并将源文件列表传递给 add_executable()
add_executable(MyProject ${SRC_LIST})
```
如果你想创建一个库,则需要使用 `add_library()` 函数,并指定库类型(静态库或动态库)。例如:
```
# 指定项目名称和源代码目录
project(MyLibrary)
set(SRC_LIST foo.cpp bar.cpp)
# 创建静态库 MyLibrary,并将源文件列表传递给 add_library()
add_library(MyLibrary STATIC ${SRC_LIST})
```
在源代码中,你可以使用 `#include` 包含头文件,CMake 会自动将头文件路径添加到编译器的 include 目录中。如果你需要链接其他库,可以使用 `target_link_libraries()` 函数将其链接到目标中。例如:
```
# 添加链接库
target_link_libraries(MyProject MyLibrary)
```
这会将 MyLibrary 链接到 MyProject 中,使得在编译时可以使用 MyLibrary 中定义的函数和变量。
阅读全文