C++ CMake:如何获取编译器“;系统“;旗帜?
我试图使用C++ CMake:如何获取编译器“;系统“;旗帜?,c++,cmake,C++,Cmake,我试图使用消息打印传递给我的目标的所有编译器标志(它们对于所有目标都是相同的)。(为什么?我需要将它们传递给cldoc以使用clang生成文档…) 在MacOs下,我意识到在执行make VERBOSE=1时,以下标志会传递给clang: -isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk-mmacosx version min=10
消息
打印传递给我的目标的所有编译器标志(它们对于所有目标都是相同的)。(为什么?我需要将它们传递给cldoc以使用clang生成文档…)
在MacOs下,我意识到在执行make VERBOSE=1
时,以下标志会传递给clang:
-isysroot/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk-mmacosx version min=10.9
什么是CMake变量,它以可移植的方式为我提供了这些信息
注意:它们不在以下位置:
CMAKE\u CXX\u标志
,CMAKE\u CXX\u编译标志
,CMAKE\u CXX\u链接标志
,CMAKE\u链接器标志
,CMAKE\u CXX\u标志
,CMAKE\u链接标志
,CMAKE\u编译标志
,CMAKE\u C\u LINK\u FLAGS
在我的项目中,我只是在头部CMakeList.txt中用“-v”命令使用附加定义:add\u definitions(-v)
类似于将
VERBOSE=1
添加到make命令。每个目标是否都有一个属性COMPILE\u FLAGS
?是的,但是当我将标志传递给cldoc时,实际上还没有目标。clang仍然需要编译标志来理解代码。是的,这就是我最后使用一个虚拟文件所做的,然后手动剥离编译器以获得系统标志。您还可以在顶部的CMakeLists.txt上使用set(CMAKE\u VERBOSE\u MAKEFILE ON)