单文件工程和多级目录工程CmakeLists.txt编写分享
你若发现该帖中有待商榷的地方,还请指正赐教,先行拜谢了!
1 main.c单文件工程CmakeLists.txt
1.1 目录结构
1.2 CmakeLists.txt
1 #指定cmake最低版本号 2 cmake_minimum_required(VERSION 3.0) 3 #指定项目名称 4 project(main) 5 6 #指定源文件编译成main 7 add_executable(main main.c) 8 9 #指定可执行文件的输出路径 10 set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
2 多目录工程CmakeLists.txt
2.1 目录结构
2.2 CmakeLists.txt
(1)根目录CmakeLists.txt
1 #指定cmake最低版本号 2 cmake_minimum_required(VERSION 3.0) 3 4 #指定项目名称 5 project(CmakeProjDemo) 6 7 #指定可执行文件的输出路径位bin目录 8 set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin) 9 10 #指定子目录 11 add_subdirectory(src) 12 #-----------------------以上是顶层目录的必需品----------------- 13 14 15 #main.c中#include "Pub.h" & #include "Calculator.h",需要指定include目录 16 include_directories(${CMAKE_SOURCE_DIR}/include) #没有这一行肯定报错找不到Pub.h & Calculator.h 17 18 #指定源文件编译成CmakeProjDemo 19 add_executable(CmakeProjDemo main.c) 20 21 #编译可执行文件时,main.c需要指定他的动态链接目录,需要放在add_executable(CmakeProjDemo main.c)之后 22 target_link_libraries(CmakeProjDemo src)
(2)src目录CmakeLists.txt
1 #该目录记为module_src 2 set(module_src src) 3 4 #当前目录下所有的源文件赋给source_src 5 aux_source_directory(. source_src) 6 7 #指定src目录下源文件 #include "Pub.h" & #include "Calculator.h" 8 include_directories(${CMAKE_SOURCE_DIR}/include) 9 10 #编译动态库 11 add_library(${module_src} ${source_src})