尝试将下面的代码块添加到CMakeLists.txt的末尾,并再次从Qt Creator运行CMake。 CMake输出应该列出通过-D
命令行参数传递的所有变量。
get_cmake_property(CacheVars CACHE_VARIABLES)
foreach(CacheVar ${CacheVars})
get_property(CacheVarHelpString CACHE ${CacheVar} PROPERTY HELPSTRING)
if(CacheVarHelpString STREQUAL "No help, variable specified on the command line.")
get_property(CacheVarType CACHE ${CacheVar} PROPERTY TYPE)
if(CacheVarType STREQUAL "UNINITIALIZED")
set(CacheVarType)
else()
set(CacheVarType :${CacheVarType})
endif()
set(CMakeArgs "${CMakeArgs} -D${CacheVar}${CacheVarType}=\"${${CacheVar}}\"")
endif()
endforeach()
message("CMakeArgs: ${CMakeArgs}")
欲了解更多信息,请参阅this answer。
这不会显示通过-G
arg选择的发电机(如果有)。为了找到这个问题,你需要在你的CMakeCache.txt中寻找CMAKE_GENERATOR:INTERNAL=...
如果这不能帮助你确定整体问题,你应该听取@ arrowdodger的建议,并发布更多关于你得到的错误的细节,你的两个构建环境。例如,错误可能是仅仅通过从源码树的子目录运行CMake而引起的。
你使用了什么发电机? – arrowd
这个特殊的问题出现在Windows上,我正在使用Visual Studio 2010 C++ x64的NMake生成器。同样的项目建立在Mac和Linux上,我们使用Unix Generator(GCC,64位)。我想知道在我们所有的平台上执行什么,但Windows绝对是紧迫的问题。谢谢。 – Evan
你在CMakeLists.txt中有'qt_wrap_ {cpp,ui}()'调用吗? – arrowd