web-dev-qa-db-ja.com

cl.exeを使用してコマンドラインをコンパイルしますか?

IDEを使用せずにVisual Studio Express 2010 C++コンパイラを使用しようとしています。 C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\VC\binにcl.exeが見つかりました。しかし、いくつかの困難を抱えています。まず、「mspdb100.dllがコンピューターにないため、プログラムを開始できません」と入力するときに、警告ポップアップが表示されました。

だから私はC:\ Program Files(x86)\ Microsoft Visual Studio 10.0\Common7\IDEをシステムパスに追加してから再試行しますが、今回は:

致命的なエラーC1510:言語リソースclui.dllをロードできません。

コンパイルできるようにこれを解決する方法はありますか?また、cl.exeを含まないソリューションフォルダー内から 'cl main.cpp'などと入力できるようにパスを設定するにはどうすればよいですか。現時点では、私はbinフォルダの中にいなければなりません。ありがとう。

36
Daniel Gratz

から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を変更します。オプションはx86ia64AMD64x86_AMD64x86_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環境変数に追加し、それがbeforecl.exeへのパスであることを確認して、このcl.batが実行されるようにしますcl.exeの代わりにclと入力します

cl.batsystem32/フォルダーに入れることをお勧めします。これは、デフォルトのインストールではcl.exeのパスの前に来るはずです。

または、任意の順序で追加して、常にcl.batを入力するか、混乱しないように別の名前を付けることができます。

53
jsvk

これは非常に単純で単純な転送タスクです。まず、コンパイラパスをシステムパスに追加します。:C:\ Program Files\Microsoft Visual Studio 10.0\VC\bin;次に、コマンドプロンプトを開き、ディレクトリをソースフォルダーに変更します。次に、vcvars32.batファイルを実行して、x86でvc ++を使用するための環境をセットアップします。その後、clを入力してプログラムをコンパイルできます。

5
Anthony Oyovwe

VSの複数のバージョンがインストールされています。各バージョンの小さな.BATファイルを作成し、パスのどこかに配置して、関連する「vcvarsall.bat」を呼び出します。例えば「vc9.bat」はVS2008のvcvarsall.batを呼び出し、「vc10.bat」はVS2010のvcvarsall.batを呼び出します。通常どおり、通常のコマンドウィンドウを開き、「vc9」と入力すると、VS2008を使用してコマンドウィンドウをコンパイルできる状態になります。

4
DaddyBean

Jsvkが提案したようにvcvarsall.batを使用するだけです:

"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 /?で確認できるコマンドラインスイッチは他にもたくさんあります。

4
hege

このエラーは、リンカのメモリが不足すると発生します。
x64ツールアーキテクチャのVisual Studioツールを使用できます。

msbuildコマンドライン:

msbuild myproject.vcxproj /p:PreferredToolArchitecture=x64

または、さらに良いことに、.vcxprojのプロジェクトの設定に追加します。
64ビットバージョンのコンパイラとツールを指定するには、Microsoft.Cpp.default.props要素の後に、Myproject.vcxprojプロジェクトファイルに次のプロパティグループ要素を追加します。

<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

0
Yochai Timmer