CMake编译器独立标志
是否有可以设置的编译器独立标志?在C++编译器中,我希望能够在GCC和CMake编译器独立标志,cmake,Cmake,是否有可以设置的编译器独立标志?在C++编译器中,我希望能够在GCC和 O2/OS/COD>中设置一个变量,例如:代码>优化>最下层< /代码>,获得 -O3>代码>。有什么我可以使用,或者应该分别为每个编译器设置标志吗?简单地说:没有,没有标志可以直接为每个编译器单独设置优化级别 然而,CMake提供了所谓的。它们独立于正在使用的编译器,并且每个都带有预定义的标志选择,其中一个是优化标志 可用的生成类型包括 Debug 发布 RelWithDebInfo MinSizeRel 关于全面的解
Debug
发布
RelWithDebInfo
MinSizeRel
CMakeLists.txt
文件中时,它还提供了一些代码来帮助识别有问题的标志:
message("CMAKE_C_FLAGS_DEBUG is ${CMAKE_C_FLAGS_DEBUG}")
message("CMAKE_C_FLAGS_RELEASE is ${CMAKE_C_FLAGS_RELEASE}")
message("CMAKE_C_FLAGS_RELWITHDEBINFO is ${CMAKE_C_FLAGS_RELWITHDEBINFO}")
message("CMAKE_C_FLAGS_MINSIZEREL is ${CMAKE_C_FLAGS_MINSIZEREL}")
message("CMAKE_CXX_FLAGS_DEBUG is ${CMAKE_CXX_FLAGS_DEBUG}")
message("CMAKE_CXX_FLAGS_RELEASE is ${CMAKE_CXX_FLAGS_RELEASE}")
message("CMAKE_CXX_FLAGS_RELWITHDEBINFO is ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
message("CMAKE_CXX_FLAGS_MINSIZEREL is ${CMAKE_CXX_FLAGS_MINSIZEREL}")
在某种程度上。对于某些概念,CMake支持以与编译器无关的方式指定它们,通常是通过设置相关目标的属性。不幸的是,没有一个地方可以列出所有这些可能性。我查看了当前版本,并将以下属性标识为“抽象构建工具选项语法”:
COMPILE\u PDB\u NAME
包括目录
INSTALL\u RPATH
过程间优化
链接目录
链接库
PDB_名称
PDB\u输出目录
- (加上用于设置输出名称、路径等的属性)