Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CMake以编程方式获取所有标志、包括和定义_Cmake - Fatal编程技术网

CMake以编程方式获取所有标志、包括和定义

CMake以编程方式获取所有标志、包括和定义,cmake,Cmake,我在linux上使用CMake 3.12,我试图从目标中以编程方式提取所有标志、包含和定义。 我在网上找到了一些帮助,但它总是局限于CMake产生的默认设置 例如,使用变量: CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE ... 这里我缺少外部标志。 我偶然发现了位于项目构建文件夹中的文件“flags.make”: # CMAKE generated file: DO NOT EDIT! # Generated by

我在linux上使用CMake 3.12,我试图从目标中以编程方式提取所有标志、包含和定义。 我在网上找到了一些帮助,但它总是局限于CMake产生的默认设置

例如,使用变量:

CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_RELEASE
...
这里我缺少外部标志。 我偶然发现了位于项目构建文件夹中的文件“flags.make”:

# CMAKE generated file: DO NOT EDIT!
# Generated by "Unix Makefiles" Generator, CMake Version 3.12

# compile C with /usr/bin/gcc-4.8
C_FLAGS = -O3 -DNDEBUG -fPIC  

C_DEFINES = -DLINUX -DLINUX64 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE

C_INCLUDES = 
这正是我需要的。有人知道如何在CMake中访问这些变量吗

谢谢大家!

致意
Fabian

“我试图从一个项目中提取所有标志,包括并以编程方式定义。”-单个项目可能有多个目标(可执行文件和/或库),它们有自己的标志集。此外,单个目标可能有多个源文件,每个源文件都使用自己的标志进行编译。所以不清楚“项目标志”是什么意思。如果您想查看编译一个或另一个源文件时实际使用的标志,或链接一个或另一个可执行文件或库时使用的标志,请将
V=1
参数传递到
make
。没错,target是更好的措辞。我的问题是,有没有办法从Unix Makefiles生成器访问变量?没有一个CMake变量包含给定源的所有编译器标志。这些标志由CMake变量--
CMake_CXX_标志
CMake_CXX_标志
)和几个目标的属性组成。此外,部分标志从属性中提取到其他目标,成功配置后(通过
target\u link\u libraries
)链接到给定的target.CMake生成
compile\u commands.json
文件。您可以尝试使用它。“我尝试从项目中以编程方式提取所有标志、包含和定义。”-单个项目可能有多个目标(可执行文件和/或库),它们有自己的标志集。此外,单个目标可能有多个源文件,每个源文件都使用自己的标志进行编译。所以不清楚“项目标志”是什么意思。如果您想查看编译一个或另一个源文件时实际使用的标志,或链接一个或另一个可执行文件或库时使用的标志,请将
V=1
参数传递到
make
。没错,target是更好的措辞。我的问题是,有没有办法从Unix Makefiles生成器访问变量?没有一个CMake变量包含给定源的所有编译器标志。这些标志由CMake变量--
CMake_CXX_标志
CMake_CXX_标志
)和几个目标的属性组成。此外,部分标志从属性中提取到其他目标,成功配置后(通过
target\u link\u libraries
)链接到给定的target.CMake生成
compile\u commands.json
文件。你可以试着用它。