Скомпилировать командную строку с помощью cl.exe?

Я пытаюсь использовать компилятор Visual Studio Express 2010 С++ без использования среды 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. Благодарю.

Ответ 1

Попробуйте запустить командную строку 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 или называть его чем-то другим, чтобы не было путаницы.

Ответ 2

Просто используйте 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 /?.

Ответ 3

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

Ответ 4

Это довольно простая и прочная задача. Сначала добавьте путь компилятора к системному пути.:C:\ Program Files\Microsoft Visual Studio 10.0\VC\bin; Затем откройте командную строку и смените каталог в исходную папку; Затем выполните файл vcvars32.bat, чтобы настроить среду для использования vС++ на x86; После этого теперь вы можете ввести cl для компиляции своей программы

Ответ 5

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

Командная строка 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