我正在尝试使用CMake和VS 2012构建一些东西。问题是我在D:\Plikiprogramów(x86)\ Microsoft Visual Studio 11.0上安装了我的VS.我的C盘上没有可用空间。
找到我的VS有问题。我试图指定VS编译器cl.exe,但无论如何它要求在同一个文件夹中的dll。我还尝试使用vcvarsall.bat指定的工具链。但我不确定我是否正确地做这些事情。
我想我需要将VS位置添加到CMake,但是如何?我尝试设置PATH但它没有用。
并且搜索该问题很困难,所有搜索引擎都认为我想要更改我想要构建的程序的安装路径。
更新
我添加了variable_watch(CMAKE_MAKE_PROGRAM)
。
CMakeLists.txt上的CMake调试日志:3(项目): 使用UNKNOWN_READ_ACCESS访问变量“CMAKE_MAKE_PROGRAM” 价值。 CMakeLists.txt的CMake调试日志:3(项目): 使用带有值的MODIFIED_ACCESS访问变量“CMAKE_MAKE_PROGRAM” C:/Windows/Microsoft.NET/Framework/v4.0.30319/MSBuild.exe。 C编译器标识未知 CXX编译器标识未知 CMakeLists.txt的CMake错误:3(项目): 找不到CMAKE_C_COMPILER。
在输出文件中:
LINK : fatal error LNK1104: cannot open file 'MSVCRTD.lib'
CMake是否在VS 11安装文件夹中查找libs?问题是VS安装程序将库放在C:\ Program Files(x86)\ Microsoft Visual Studio 11.0 \ VC \ lib \ amd64。
答案 0 :(得分:3)
对于这样的情况(以及类似情况),我在源树中保留了VCEnvCmd.bat
:
call "%VS110COMNTOOLS%\..\..\VC\vcvarsall.bat" amd64 & %*
执行不带参数的.bat将找到并运行vcvarsall.bat
,为当前shell中的amd64
目标设置环境(您可以根据需要更改或参数化,如版本嵌入在该环境变量中的数字。)
好的诀窍是,对于那些夜间/连续版本,您可以使用.bat作为设置环境的“前缀”,例如:在任务管理器中:
VCEnvCmd.bat ctest -S CTestScript.cmake,Nightly
优势在于您使用MSVC已经为您提供的内容(VS...COMNTOOLS
变量),而不必通过对PATH
等的持续更改来进一步混乱您的环境。