cmake多级目录编译
时间: 2023-06-05 22:47:26 浏览: 378
在软件开发中,随着项目规模和功能的增加,源代码文件也会随之增加,这就需要采用多级目录管理源代码。在C/C++项目中,使用cmake可以方便地管理多级目录的源代码编译。
首先,在项目根目录下创建一个CMakeLists.txt文件,设置项目名称、编译器、C++版本等基本信息,并添加子目录。
```
cmake_minimum_required(VERSION 2.8)
project(myproject)
set(CMAKE_CXX_COMPILER "g++")
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_FLAGS "-Wall")
add_subdirectory(src)
```
然后,在每个子目录下,创建一个CMakeLists.txt文件,设置本目录下的源文件和头文件,并生成静态库或动态库。
以src子目录为例:
```
# src/CMakeLists.txt
add_library(mylib STATIC foo.cpp bar.cpp)
target_include_directories(mylib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
```
通过add_library添加需要编译的源文件,target_include_directories设置头文件搜索路径。为了方便,在主CMakeLists.txt中添加一个include目录,设置头文件搜索路径。
```
include_directories(include)
```
最后,在项目根目录下执行cmake以及make,即可编译生成目标文件。
```
mkdir build && cd build
cmake ..
make
```
总结来说,使用cmake可以方便地管理多级目录的源代码编译,通过设置CMakeLists.txt文件,可以轻松管理项目的构建。
阅读全文