栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

CMake入门知识(3)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CMake入门知识(3)

目录

1.CMake 系统信息

2.资料夹和档案信息

3. 各类flags (一般用 set命令设置)


1.CMake 系统信息

CMAKE_SYSTEM
系统全名,如 "Linux-2.4.22","FreeBSD-5.4-RELEASE" 或 "Windows 5.1"


CMAKE_SYSTEM_NAME
系统名称,如 "Linux", "FreeBSD" or "Windows"


CMAKE_SYSTEM_VERSION
只有 CMAKE_SYSTEM 当中版本的部分


CMAKE_SYSTEM_PROCESSOR
CPU 名称,如 "Intel(R) Pentium(R) M processor 2.00GHz"


CMAKE_GENERATOR

在命令列所指定的 Generator 名称

message("CMAKE_SYSTEM:" ${CMAKE_SYSTEM})
message("CMAKE_SYSTEM_NAME:" ${CMAKE_SYSTEM_NAME})
message("CMAKE_SYSTEM_VERSION:" ${CMAKE_SYSTEM_VERSION})
message("CMAKE_SYSTEM_PROCESSOR:" ${CMAKE_SYSTEM_PROCESSOR})
message("CMAKE_GENERATOR:" ${CMAKE_GENERATOR})

 


2.资料夹和档案信息

CMAKE_SOURCE_DIR
内容为 source tree 根目录的完整路径,也就是 CMake 开始建置过程的进入点。


CMAKE_BINARY_DIR
内容为 binary tree 根目录的完整路径,在 in-source build 的时候值与 CMAKE_SOURCE_DIR 相同。


PROJECT_SOURCE_DIR
目前正在处理中的专案最上层目录,即内含 project() 指令的 CMakeLists 所在资料夹。


PROJECT_BINARY_DIR
目前所属专案的建置根目录。在 in-source build 时和 PROJECT_SOURCE_DIR 相同。


CMAKE_CURRENT_SOURCE_DIR
目前正在处理的 CMakeLists.txt 所在位置。


CMAKE_CURRENT_BINARY_DIR
目前正在处理的 CMakeLists.txt 对应的建置资料夹位置。在 in-source build 时和 CMAKE_CURRENT_SOURCE_DIR 相同。


CMAKE_CURRENT_LIST_DIR
表示正在处理的 CMakeLists.txt 文件的所在的目录的绝对路径(2.8.3 以及以后版本才支持)


CMAKE_ARCHIVE_OUTPUT_DIRECTORY
用于设置 ARCHIVE 目标的输出路径


CMAKE_LIBRARY_OUTPUT_DIRECTORY
用于设置 LIBRARY 目标的输出路径


CMAKE_RUNTIME_OUTPUT_DIRECTORY
用于设置 RUNTIME 目标的输出路径

message("CMAKE_SOURCE_DIR:" ${CMAKE_SOURCE_DIR})
message("CMAKE_BINARY_DIR:" ${CMAKE_BINARY_DIR})
message("PROJECT_SOURCE_DIR:" ${PROJECT_SOURCE_DIR})
message("PROJECT_BINARY_DIR:" ${PROJECT_BINARY_DIR})
message("CMAKE_CURRENT_SOURCE_DIR:" ${CMAKE_CURRENT_SOURCE_DIR})
message("CMAKE_CURRENT_BINARY_DIR:" ${CMAKE_CURRENT_BINARY_DIR})
message("CMAKE_CURRENT_LIST_DIR:" ${CMAKE_CURRENT_LIST_DIR})
message("CMAKE_ARCHIVE_OUTPUT_DIRECTORY:" ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY})
message("CMAKE_LIBRARY_OUTPUT_DIRECTORY:" ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
message("CMAKE_RUNTIME_OUTPUT_DIRECTORY:" ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})

 LIBRARY_OUTPUT_PATH

用于设置 可执行程序的输出路径

EXECUTABLE_OUTPUT_PATH

用于设置 库文件的输出路径

SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)

3. 各类flags (一般用 set命令设置)

CMAKE_BUILD_TYPE
控制建置类型,值可为下列之一:
 None: 编译器默认值
 Debug: 产生除错信息
 Release: 进行最佳化
 RelWithDebInfo: 进行最佳化,但仍然会启用 DEBUG flag
 MinSizeRel: 进行程式码最小化

C /C++编译标志相关变量
 CMAKE_C_FLAGS
 CMAKE_C_FLAGS_[DEBUG|RELEASE|MINSIZEREL|RELWITHDEBINFO]   CMAKE_CXX_FLAGS
 CMAKE_CXX_FLAGS_[DEBUG|RELEASE|MINSIZEREL|RELWITHDEBINFO] 

set( CMAKE_CXX_FLAGS "-std=c++11 -fPIC -Wall -Wextra -Werror -Ofast" )
set( CMAKE_C_FLAGS   "-fPIC -Wall -Werror -O3 -std=gnu99" )

链接标志相关变量
 CMAKE_EXE_LINKER_FLAGS
 CMAKE_EXE_LINKER_FLAGS_[DEBUG|RELEASE|MINSIZEREL|RELWITHDEBINFO]
 CMAKE_MODULE_LINKER_FLAGS
 CMAKE_MODULE_LINKER_FLAGS_[DEBUG|RELEASE|MINSIZEREL|RELWITHDEBINFO]
 CMAKE_SHARED_LINKER_FLAGS
 CMAKE_SHARED_LINKER_FLAGS_[DEBUG|RELEASE|MINSIZEREL|RELWITHDEBINFO]

set ( CMAKE_EXE_LINKER_FLAGS 
      "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath -Wl,${CMAKE_LIBRARY_OUTPUT_DIRECTORY}" )

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853516.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号