添加目录:
cmake_minimum_required(VERSION 3.7)#cmake 版本最低要求3.7
project(lm)#工程名称lm
aux_source_directory(./cli cli_src)#将./cli目录中的文件名称赋值给变量 cli_src
aux_source_directory(./ctrl ctrl_src)#将./ctrl目录中的文件名称赋值给变量 ctrl_src
aux_source_directory(./ft ft_src)#将./ft目录中的文件名称赋值给变量 ft_src
add_executable(cli.bin ${cli_src})#变量 cli_src中的源文件需要编译 成一个名称为cli.bin的可执行文件
add_executable(ctrl.bin ${ctrl_src})#变量 ctrl_src中的源文件需要编译 成一个名称为ft.bin的可执行文件
add_executable(ft.bin ${ft_src})#变量 ft_src中的源文件需要编译 成一个名称为ft.bin的可执行文件
嵌套CMakeLists.txt
目录结构:
.
├── build
├── CMakeLists.txt
└── src
├── cli
│ └── main.cpp
├── CMakeLists.txt
├── ctrl
│ └── main.cpp
└── ft
└── main.cpp
工程目录lm下面的: CMakeLists.txt
cmake_minimum_required(VERSION 3.7)#限制cmake版本
project(lm)
add_subdirectory(src)#添加一个子目录
子目录 src 下面的CMakeLists.txt
SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../bin)#bin生成目录.我们要在build/下cmake,所以此处是../bin
AUX_SOURCE_DIRECTORY(./cli CLI_SRCS)#添加当前目录cli目录下的所有文件
AUX_SOURCE_DIRECTORY(./ctrl CTRL_SRCS)#添加当前目录ctrl目录下的所有文件
AUX_SOURCE_DIRECTORY(./ft FT_SRCS)#添加当前目录ft目录下的所有文件
ADD_EXECUTABLE(cli.bin ${CLI_SRCS})#把变量CLI_SRCS中的源文件编译成cli.bin的可执行文件
ADD_EXECUTABLE(ctrl.bin ${CTRL_SRCS})#把变量CTRL_SRCS中的源文件编译成ctrl.bin的可执行文件
ADD_EXECUTABLE(ft.bin ${FT_SRCS})#把变量FT_SRCS中的源文件编译成ft.bin的可执行文件
INCLUDE_DIRECTORIES(include)#把头文件分离到一个目录中去
LINK_LIBRARIES('m')#链接库,相当于编译中的-lm参数.
本文介绍了如何使用CMake添加和管理多个源代码目录,通过`aux_source_directory`获取子目录中的源文件,并创建多个可执行文件。示例中展示了根目录和子目录CMakeLists.txt的配置,以及如何设置输出路径和链接库。
544

被折叠的 条评论
为什么被折叠?



