<中常⽤到的变量最近在写CMakeLists遇到了很多预定义变量,特此记录便于⽇后查阅。
⽂件结构如下:
常⽤路径变量
PROJECT_NAME:通过PROJECT指定的项⽬名称
project(Demo)
PROJECT_SOURCE_DIR:⼯程的根⽬录,上图中的Demo⽬录
PROJECT_BINARY_DIR:执⾏cmake命令的⽬录,⼀般是在build⽬录,在此⽬录执⾏cmake ..
CMAKE_CURRENT_SOURCE_DIR: 当前⽂件所在⽬录
CMAKE_CURRENT_BINARY_DIR: target编译⽬录,可使⽤ADD_SUBDIRECTORY来修改此变量
1. # 添加cmake执⾏⼦⽬录
2. ADD_SUBDIRECTORY(example)
EXECUTABLE_OUTPUT_PATH:重新定义⽬标链接库⽂件的输出位置
1. # 设置可执⾏⽂件的输出路径为 build/bin
2. set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
LIBRARY_OUTPUT_PATH:库⽂件输出位置
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
常⽤系统信息变量
CMAKE_MAJOR_VERSION:cmake的主版本号cmake version 3.11.2中的3
CMAKE_MINOR_VERSION:cmake的次版本号cmake version 3.11.2中的11
CMAKE_PATCH_VERSION:cmake的补丁等级cmake version 3.11.2中的2
CMAKE_SYSTEM:系统名称,带版本号
CMAKE_SYSTEM_NAME:系统名称,不带版本号
CMAKE_SYSTEM_VERSION:系统版本号
CMAKE_SYSTEM_PROCESSOR:处理器名称
编译选项:
BUILD_SHARED_LIBS:默认的库编译⽅式(shared or static),默认为static,⼀般在ADD_LIBRARY时直接指定编译库的类型CMAKE_C_FLAGS:设置C编译选项
CMAKE_CXX_FLAGS:设置C++编译选项
为什么现在都用cmakeCMAKE_CXX_FLAGS_DEBUG:设置编译类型为Debug时的编译选项
CMAKE_CXX_FLAGS_RELEASE:设置编译类型为Release时的编译选项
CMAKE_CXX_COMPILER:设置C++编译器
1. # 设置C++编译器为g++
2. set(CMAKE_CXX_COMPILER "g++")
3. # 设置标准库版本为c++17 并开启警告
4. set(CMAKE_CXX_FLAGS "-std=c++17 -Wall")
5. # 设置Debug模式下,不开启优化,开启调试,⽣成更详细的gdb调试信息
6. set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -ggdb")
7. # 设置Release模式下,开启最⾼级优化
8. set(CMAKE_CXX_FLAGS_RELEASE "-O3")
到此 CMakeLists 中常⽤的预定义变量介绍完成。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。