Как загрузить 64-разрядную командную строку инструментов Visual Studio Tools? - PullRequest
8 голосов
/ 26 февраля 2011

Моя машина для разработки работает под управлением Windows 7 Ultimate x64.Я установил Visual Studio 2010 Ultimate.При открытии командной строки Visual Studio (2010) я получаю сообщение

Настройка среды для использования инструментов Microsoft Visual Studio 2010 x86.

Я также настроил Расширения сообщества PowerShell в своем профиле пользователя Windows PowerShell.И я использую командлет Invoke-BatchFile для установки инструментов Visual Studio во все мои сеансы PowerShell.

$vcargs = ?: {$Pscx:Is64BitProcess} {'amd64'} {'x86'}
$vcvars = "${env:VS100COMNTOOLS}..\..\VC\vcvarsall.bat"
Invoke-BatchFile $vcvars $vcargs

Мой vcargs преобразуется в amd64.Я посмотрел в файле vcvarsall.bat местонахождение командного файла x64 и получил ~dp0bin\amd64\vcvars64.bat.Этот каталог (и файл) не существует.

Как правильно установить файл vcvars64.bat?

Ответы [ 5 ]

5 голосов
/ 26 февраля 2011

При работе в пакетном процессоре% ~ dp0 расширяется до пути, где выполняется файл .bat.Таким образом, при установке по умолчанию для VS2010, которая разрешается в c: \ program files \ microsoft visual studio 10.0 \ vc \ bin \ amd64 \ vcvars64.bat.Который действительно отсутствует, это ошибка, которую они не кажутся интересными для исправления .

Используйте вместо этого "x86_amd64"Вы получите кросс-компилятор, который используется в IDE.

4 голосов
/ 26 февраля 2011

Установка компонентов x64

Проблема заключается в неполной установке Visual Studio.Я только установил компоненты C #.Мне нужно было установить, по крайней мере, Компиляторы и инструменты Visual C ++ x64 .

Добавление компонентов в существующую установку

У меня было проблемы добавлениеэти компоненты для существующей установки.VS2010, особенно с установленным SP1, содержит массу ошибок при изменении установки.Я столкнулся с какой-то ошибкой пути не найден

  1. Сначала я удалил SP1.Мне нужен установочный носитель VS2010 под рукой ( распаковать в каталог, вставить реальный диск или смонтировать на виртуальный диск).
  2. Затем я добавил компоненты VC ++ в установку VS
  3. Затем я смог переустановить SP1.
0 голосов
/ 09 января 2015

У меня была проблема, когда у меня был Visual Studio 2010 Professional (я предполагаю, что не SP1, он говорит "Версия 10.0.30319.1 RTMRel" в О), и у меня также была проблема, где в папке C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC, у него был vcvarsall.bat, но все пути, по которым он пытался найти другие файлы .bat, были неверными, иначе у меня не было других файлов bat.

Я наткнулся на это сообщение на форуме , и это было единственное, что решило мою проблему. Некоторые люди здесь также говорили «просто используйте SetEnv», но я не знал, где это было, потому что это не было в моем PATH (ввод setenv привел к «команда не найдена»), так что это более полный ответ, что я Я пишу здесь, чтобы людям не приходилось бороться, как я так долго

Публикация здесь для архивных целей:

Пакетный файл для установки параметров среды для компиляции для 64 бит содержится в Windows SDK.

После установки Windows SDK используйте следующий вызов CALL "C: \ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Bin \ SetEnv.cmd" / x64

Или создайте файл C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ vc \ bin \ amd64 \ vcvars64bat со строкой выше.

0 голосов
/ 19 апреля 2013

Есть ли у вас Microsoft Windows SDK 7.1?

Откройте обычную командную строку Visual Studio и введите:

setenv /x64

Если ваши 64-битные компиляторы отсутствуют, вам может понадобиться прочитать KB2519277 .

0 голосов
/ 26 февраля 2011

Я сталкивался примерно с одной и той же проблемой несколько раз. Похоже, что структура, созданная MS для этого, настолько хрупка, что установка или удаление любого программного обеспечения на той же машине (или, очевидно, дыхание где-то рядом с этой машиной) может и сломает его. Хуже того, у них есть почти непроницаемая пачка пакетных файлов, вызывающих друг друга, которые в итоге выполняют довольно тривиальные задачи, которые кажутся едва ли не самым окольным путем.

Хотя я полагаю, что это тратит немного памяти, я решил немного упростить свою жизнь и использовать это:

#include <windows.h>
#include <iostream>
#include <string>
#include <process.h>

void setenv(std::string const &name, std::string const &value) { 
    SetEnvironmentVariable(name.c_str(), value.c_str());
}

std::string vs_base = "C:\\Program Files (x86)\\Microsoft Visual Studio 10.0\\";
std::string vc_base = vs_base + "VC\\";
std::string sdk_dir = "C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v7.0A\\";

int main(int argc, char **argv) { 
    char inc_name[] = "INCLUDE";
    char lib_name[] = "LIB";
    char path_name[] = "PATH";

    std::string inc_dir = getenv(inc_name);
    std::string lib_dir = getenv(lib_name);
    std::string path_dir = getenv(path_name);

    inc_dir = vc_base + "include;" + sdk_dir + "include;" + inc_dir;
    lib_dir = vc_base + "lib;" + sdk_dir + "lib;" + lib_dir;
    path_dir = vc_base + "bin;" + sdk_dir + "bin;" + vs_base + "Common7\\IDE;" + path_dir;

    setenv(inc_name, inc_dir);
    setenv(lib_name, lib_dir);
    setenv(path_name, path_dir);

    char path[MAX_PATH];

    GetSystemDirectory(path, sizeof(path));
    strcat(path, "\\cmd.exe");
    _spawnlp(_P_WAIT, path, path, NULL);

    return 0;
}

Вам нужно будет настроить базовые каталоги вверху для мест, где у вас установлены вещи. На днях я полагаю, что мне следует переписать это, чтобы использовать отдельный файл конфигурации (я в значительной степени разработал формат XML, который должен работать достаточно хорошо), но это сработало достаточно хорошо, и я не потрудился закончить это, и так как это все равно для программиста, выполнение тривиальной модификации и перекомпиляции не особенно обременительно.

...