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中引用它来控制流。