7

Visual Studio 2012 似乎总是调用cl.exe位于%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\bin\x86_amd64) 的 32 位版本,而不是位于 的 64位版本%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\bin\amd64

我尝试在属性表的VC++ 目录部分中添加$(VCInstallDir)bin\amd64到“可执行目录”列表的开头,但这根本不起作用——重建时出现此错误:Microsoft.Cpp.x64.user

TRACKER : error TRK0002: Failed to execute command: "
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\CL.exe"
@C:\Users\<my_profile>\AppData\Local\Temp\tmpf3d817cafe064ad28e7dd62b2cb591c3.rsp
". The operation identifier is not valid.

如何让 Visual Studio 2012 使用本机 64 位 C++ 编译器?

4

2 回答 2

13

这个答案有点晚了,但令人沮丧的是,微软的在线文档中仍然没有直接可用的好资源。事实证明这很容易,即使不是完全方便。

在命令提示符下,键入(根据需要更改 VS 的版本):

> set _IsNativeEnvironment=true
> "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe" YourProject.sln

线索在文件中

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.targets

它说的地方

<SetEnv Condition="'$(_IsNativeEnvironment)' == 'true'"
        Name ="PATH"
        Value ="$(NativeExecutablePath)"
        Prefix ="false">
  <Output TaskParameter="OutputEnvironmentVariable" PropertyName="Path"/>
</SetEnv>

我的项目是由 CMake 生成的,所以我通常在命令提示符下运行几行,然后才能打开 VS。我总是在第一次设置 MSVC 环境后启动我的 CMake 生成器,所以老实说我不知道​​它是否需要,但你也可以选择这样做(在其他所有事情之前):

> call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" amd64

和/或

> call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\vcvars64.bat"

这是MSDN上原始帖子的链接,我终于找到了答案。

于 2014-01-30T18:21:15.377 回答
0

我正在将一个旧项目从 Win32 转换为 x64 并遇到了这个问题。
我发现了两种不同的方法来解决这个问题:

方法1:
一。前往:项目属性| 一般| 平台工具集
ii。将值从“ Visual Studio 2012 (v110) ”更改为“ Visual Studio 2012 - Windows XP (v110_xp)

方法2:
i。%LOCALAPPDATA%\Microsoft\MSBuild\v4.0\Microsoft.Cpp.x64.user.props
ii.打开配置文件 在<ExecutablePath>属性组内,我将$(WindowsSDK_ExecutablePath_x64)条目替换为$(WindowsSDK_ExecutablePath_x86)

所有这些工作正常之后。

于 2015-05-19T11:18:43.543 回答