Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
Variables CMake:从BuildSetup.CMake文件中访问变量_Variables_Configuration_Cmake_32bit 64bit - Fatal编程技术网

Variables CMake:从BuildSetup.CMake文件中访问变量

Variables CMake:从BuildSetup.CMake文件中访问变量,variables,configuration,cmake,32bit-64bit,Variables,Configuration,Cmake,32bit 64bit,我试图根据名为cmake\u SIZEOF\u VOID\u p的cmake变量的值来控制程序的流程 首先,我想通过在我的cmakelists.txt文件中发出以下命令,看看这个变量在多个不同配置下的值: message(${CMAKE_SIZEOF_VOID_P}) 这很好用。但是,每当我尝试在BuildSetup.cmake文件上运行上述命令时,都不会得到任何返回值(它只是抛出一个错误) 能够在BuildSetup.cmake文件中访问此变量的值非常重要,因为这将帮助我决定传递给编译器的标

我试图根据名为
cmake\u SIZEOF\u VOID\u p
的cmake变量的值来控制程序的流程

首先,我想通过在我的cmakelists.txt文件中发出以下命令,看看这个变量在多个不同配置下的值:

message(${CMAKE_SIZEOF_VOID_P})
这很好用。但是,每当我尝试在BuildSetup.cmake文件上运行上述命令时,都不会得到任何返回值(它只是抛出一个错误)

能够在BuildSetup.cmake文件中访问此变量的值非常重要,因为这将帮助我决定传递给编译器的标志和其他参数

我真正需要的是一种确定cmake是运行x64编译还是32位编译的方法,因此,如果有任何其他变量(除了这个变量,因为它没有在BuildSetup.cmake文件中定义)会给出这个结果,那么这也适用于我的目的


任何帮助都将不胜感激。谢谢。

在调用
PROJECT()
命令之前,您不能使用
CMAKE\u SIZEOF\u VOID\u p
(我认为它是在
项目执行的
TRY\u COMPILE
阶段设置的)

由于您正在使用
cmake-C
调用BuildSetup.cmake,BuildSetup.cmake的内容将在主CMakeLists.txt中的任何内容之前进行解析


但是,您可能不应该使用配置文件来确定CMake需要哪些编译器标志,它们确实属于
PROJECT()
命令之后的CMakeLists.txt中。

您如何运行
BuildSetup.CMake
?它应该是CMakeLists.txt的
include()
d。@arrowdoger:它从命令行调用如下:cmake.exe-G“Visual Studio 2008”-C BuildSetup.cmake-WdevPerfect!谢谢我意识到有一种方法可以解决这个问题——我可以在调用BuildSetup.cmake(-C)之前传入一个命令行参数(-D),并在BuildSetup.cmake中引用它来控制流。