对于少数量的源文件:
cmake_minimum_required (VERSION 3.0) //指定cmake最小版本
project (main) //工程名字
add_executable(main a.cpp b.cpp c.cpp) //用a.cpp b.cpp c.cpp生成.elf的文件名字为main
对于多数量的源文件:
-
使用 aux_source_directory(dir name) 把dir目录下的所有源文件保存在 name变量里
cmake_minimum_required (VERSION 3.0) //指定cmake最小版本
project (main) //工程名字
aux_source_directory(. SRC_LIST) //把当前目录下的所有源文件保存在 SRC_LIST变量里
add_executable(main ${SRC_LIST})
-
使用set( name dir1 dir2 ...) 把指定文件保存在name里
cmake_minimum_required (VERSION 3.0) //指定cmake最小版本 project (main) //工程名字 set( SRC_LIST ./a.cpp ./b.cpp ./c.cpp) add_executable(main ${SRC_LIST})
对于不同目录下的源文件:
-
使用 include_directories (dir1 dir2) 头文件搜索路径
cmake_minimum_required (VERSION 3.0) //指定cmake最小版本
project (main) //工程名字
include_directories(test1) //在test1目录下搜索头文件
aux_source_directory(test1 SRC_LIST) //把test1目录下的所有源文件保存在 SRC_LIST变量里
add_executable(main ${SRC_LIST})
对于多个目录下的多个CMakeLists.txt文件
根目录下的CMakeLists.txt文件
cmake_minimum_required (VERSION 3.0) //指定cmake最小版本
project (main) //工程名字
add_subdirectory (son) //在son目录下搜索CMakeLists.txt文件
son目录下的CMakeLists.txt文件
aux_source_directory (. SRC_LIST) //把当前目录下的所有源文件保存在SRC_LIST变量里
include_directories (../include) //头文件搜索路径
add_executable (main ${SRC_LIST}) //生成elf文件
set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) //把elf文件保存在指定目录
其中:
-
EXECUTABLE_OUTPUT_PATH :目标二进制可执行文件的存放位置
-
PROJECT_SOURCE_DIR:工程的根目录
则 set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)是把elf文件保存在根目录下的bin文件中