CMake和Visual Studio没有默认安装文件夹

时间:2015-07-27 09:50:06

标签: visual-studio cmake

我正在尝试使用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。

1 个答案:

答案 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等的持续更改来进一步混乱您的环境。

相关问题