Как заставить Visual Studio 2012 вызывать собственный 64-разрядный компилятор Visual C ++ вместо 32-разрядного кросс-компилятора x64?

Visual Studio 2012, кажется, всегда вызывает 32-битную версию cl.exe расположен в %ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\bin\x86_amd64) вместо 64-битной, расположенной по адресу %ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\bin\amd64,

Я пытался предугадывать $(VCInstallDir)bin\amd64 в начале списка «Исполняемые каталоги» в Каталоги VC ++ раздел 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 ++?

7

Решение

Этот ответ немного запоздал на вечеринку, но, к сожалению, по-прежнему нет хорошего ресурса, доступного напрямую из онлайн-документации Microsoft. Оказывается, это легко, даже если не совсем удобно.

В командной строке введите (изменив версию VS в соответствии с вашими потребностями):

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

Мой проект генерируется CMake, поэтому я обычно в командной строке на несколько строк, прежде чем я могу открыть VS в любом случае. Я всегда запускал свои генераторы CMake после первой настройки среды MSVC, поэтому я, честно говоря, не знаю, требуется ли это или нет, но вы также можете сделать это (прежде всего):

> 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 где я наконец нашел ответ.

13

Другие решения

Я конвертировал старый проект из Win32 в x64 и столкнулся с этой проблемой.
Я нашел два разных способа, как обойти это:

Способ 1:
я. Должен: Свойства проекта | генеральный | Набор инструментов платформы
II. Измените значение с ‘Visual Studio 2012 (v110)кVisual Studio 2012 — Windows XP (v110_xp)

Метод 2:
я. Открыть файл конфигурации %LOCALAPPDATA%\Microsoft\MSBuild\v4.0\Microsoft.Cpp.x64.user.props
II. Внутри <ExecutablePath> группа недвижимости, я заменил $(WindowsSDK_ExecutablePath_x64) вход с $(WindowsSDK_ExecutablePath_x86)

После любой из них все работало нормально.

0

По вопросам рекламы [email protected]