https://www.cnblogs.com/xuelisheng/p/9988626.html https://www.jianshu.com/p/f930e2826a6a https://blog.csdn.net/weixin_42491857/article/details/80741060
https://blog.csdn.net/libaineu2004/article/details/78995740
- # CMake 最低版本号要求 cmake_minimum_required (VERSION 2.8) - # 项目信息 project (Demo1) - # 指定生成目标 add_executable(Demo main.cc)对于上面的 CMakeLists.txt 文件,依次出现了几个命令:
cmake_minimum_required:指定运行此配置文件所需的 CMake 的最低版本; project:参数值是 Demo1,该命令表示项目的名称是 Demo1 。 add_executable: 将名为 main.cc 的源文件编译成一个名称为 Demo 的可执行文件。
编译项目 之后,在当前目录执行 cmake . ,得到 Makefile 后再使用 make 命令编译得到 Demo1 可执行文件。
# CMake 最低版本号要求 cmake_minimum_required (VERSION 2.8) # 项目信息 project (Demo2) # 指定生成目标 add_executable(Demo main.cc MathFunctions.cc)同一目录,多个源文件
# CMake 最低版本号要求 cmake_minimum_required (VERSION 2.8) # 项目信息 project (Demo2) # 查找当前目录下的所有源文件 # 并将名称保存到 DIR_SRCS 变量 aux_source_directory(. DIR_SRCS) # 指定生成目标 add_executable(Demo ${DIR_SRCS})aux_source_directory 命令,该命令会查找指定目录下的所有源文件,然后将结果存进指定变量名。 CMake 会将当前目录所有源文件的文件名赋值给变量 DIR_SRCS ,再指示变量 DIR_SRCS 中的源文件需要编译成一个名称为 Demo 的可执行文件。
多个目录,多个源文件 对于这种情况,需要分别在项目根目录 Demo3 和 math 目录里各编写一个 CMakeLists.txt 文件。为了方便,我们可以先将 math 目录里的文件编译成静态库再由 main 函数调用。 根目录中的 CMakeLists.txt : ./Demo3 | ±-- main.cc | ±-- math/ | ±-- MathFunctions.cc | ±-- MathFunctions.h
