|
cmake是如何管理编译的C++项目
1、单个源文件 cmake_demo01_single
2、多个源文件 单个目录 cmake_demo02_multi
3、多个源文件 多个目录 cmake_demo03_multi
- # CMake最低版本要求
- cmake_minimum_required (VERSION 2.8)
- # 项目信息
- project (mathPowerDemo2)
- # 制定生成目标
- # 如果同一个文件夹下,特别多的源文件怎么办呢?
- # 使用aux_source_directory命令 查找制定目录下所有的源文件,然后把结果保存进指定的变量名
- aux_source_directory(. ALL_SRCS)
- # add_executable(mathPowerDemo2 main.cpp power.cpp)
- # cmake如何打印变量的结果? message()
- # 无) = 重要消息;
- # STATUS = 非重要消息;
- # WARNING = CMake 警告, 会继续执行;
- # AUTHOR_WARNING = CMake 警告 (dev), 会继续执行;
- # SEND_ERROR = CMake 错误, 继续执行,但是会跳过生成的步骤;
- # FATAL_ERROR = CMake 错误, 终止所有处理过程;
- message(WARNING "所有源文件:"${ALL_SRCS})
- add_executable(mathPowerDemo2 ${ALL_SRCS})
复制代码
- cmake_minimum_required (VERSION 2.8)
- project (mathPowerDemo3)
- aux_source_directory(. ALL_SRCS) # 添加当前目录下所有的源文件
- add_subdirectory(lib) # 添加lib子目录
- add_executable(mathPowerDemo3 ${ALL_SRCS}) # 指定生成目标,注意这里要用${ALL_SRCS}!!!
- message(WARNING "我说:lib目录里的文件编译成静态库再由main函数调用")
- target_link_libraries(mathPowerDemo3 power) # 添加链接库,power是在lib子目录的CMakeLists中定义的
复制代码
- # 子目录中的CMakeLists本质上是去生成一个链接库
- aux_source_directory(. LIB_SRCS) # 添加当前目录下所有的源文件
- message(WARNING "我说:命令add_library将lib目录中的源文件编译为静态链接库")
- add_library(power ${LIB_SRCS}) # 当前目录下的文件生成一个链接库
复制代码
|
|