Компиляция командной строки с использованием cl.exe? - PullRequest
36 голосов
/ 23 октября 2011

Пытаюсь использовать компилятор Visual Studio Express 2010 C ++ без использования IDE.Я нашел cl.exe в C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin.Однако у меня возникли некоторые трудности.Во-первых, он выдал мне предупреждение, когда я набрал команду cl: «Программа не может запуститься, потому что на вашем компьютере отсутствует mspdb100.dll».

Поэтому я добавляю C: \ Program Files (x86) \ Microsoft Visual Studio 10.0\ Common7 \ IDE к системному пути, а затем повторите попытку, но на этот раз:

фатальная ошибка C1510: Невозможно загрузить языковой ресурс clui.dll.

Есть идеи, как решить эту проблему, чтобы я мог скомпилировать?Также, как мне настроить путь, чтобы я мог просто набрать «cl main.cpp» и т. Д. Из папки решения, которая не содержит cl.exe.На данный момент я должен быть в папке bin.Благодарю.

Ответы [ 5 ]

53 голосов
/ 23 октября 2011

Попробуйте запустить командную строку Visual Studio из

Start->
    All Programs ->
        Microsoft Visual Studio 2010 ->
            Visual Studio Tools ->
                Visual Studio Command Prompt 2010

В качестве альтернативы вы можете настроить среду, запустив ее в командной строке:

"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86

(примечание: это будетоставьте свою среду настроенной после запуска.)

(примечание 2: измените x86 по желанию. Опции: x86, ia64, amd64, x86_amd64, x86_ia64)

Оттуда вы можете запустить cl.exe.Если вы хотите, чтобы это выполнялось автоматически и отменялось при каждом запуске cl, создайте пакетный файл со следующим содержимым:

@echo off
%comspec% /c ""c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 && cl.exe %*"

(/c указывает командной строке завершить сеанс после выполнения этогокоманда, чтобы ваша среда вернулась к нормальной жизни.)

Оттуда назовите ее cl.bat.Поместите его в какую-нибудь папку и добавьте путь к этой папке в переменную окружения PATH, убедившись, что он идет до пути к cl.exe, чтобы этот cl.bat выполнялся всякий раз, когда вывведите cl вместо cl.exe

Я рекомендую просто поместить cl.bat в вашу папку system32/, она должна идти до пути cl.exe при установке по умолчанию.

Кроме того, вы можете добавить его в любом порядке и всегда вводить cl.bat или назвать его как-нибудь иначе, чтобы не было путаницы.

5 голосов
/ 29 декабря 2013

Это довольно простая и прямолинейная задача. Во-первых, добавьте путь к компилятору в системный путь. Затем откройте командную строку и измените каталог на исходную папку; Затем выполните файл vcvars32.bat, чтобы настроить среду для использования vc ++ на x86; После этого вы можете набрать cl для компиляции вашей программы

4 голосов
/ 18 июня 2013

У меня установлено несколько версий VS; Я создаю небольшой файл .BAT для каждой версии, помещенный где-то в пути, который вызывает соответствующий vcvarsall.bat. например «vc9.bat» вызывает vcvarsall.bat для VS2008, а «vc10.bat» вызывает vcvarsall.bat для VS2010. Я могу открыть обычное командное окно как обычно, набрать «vc9» и presto, это командное окно готово для компиляции и т. Д. С использованием VS2008.

4 голосов
/ 25 октября 2011

Просто используйте vcvarsall.bat как предложено jsvk:

"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86

После этого используйте devenv.exe для создания своих вещей, если вы защищаете себя от многих головных болей:

devenv solutionfile.sln /build [ solutionconfig ] [ /project projectnameorfile [ /projectconfig name ] ]

Существует множество других параметров командной строки, которые вы можете проверить с помощью devenv /?.

0 голосов
/ 27 августа 2017

Эта ошибка возникает, когда компоновщику не хватает памяти.
Вы можете использовать архитектуру инструмента x64 Visual Studio tools.

msbuild командная строка:

msbuild myproject.vcxproj /p:PreferredToolArchitecture=x64

Или, что еще лучше, добавьте его в настройки проекта в .vcxproj.
Чтобы указать 64-разрядную версию компилятора и инструментов, добавьте следующий элемент группы свойств в файл проекта Myproject.vcxproj после элемента Microsoft.Cpp.default.props:

<PropertyGroup>  
    <PreferredToolArchitecture>x64</PreferredToolArchitecture>  
</PropertyGroup> 

Эти параметры позволят Visual Studio использовать инструменты в папках архитектуры amd64 (в соответствии с целевой архитектурой):
VC \ Bin \ amd64
VC \ Bin \ amd64_x86
VC \ bin \ amd64_arm

https://msdn.microsoft.com/en-us/library/dd293607.aspx

...