2016-09-08 5 views
3

64bit win10にMicrosoft Visual C++ビルドツール2015をインストールしました.cl.exeを使用して、次の手順でC/C++プログラムをプレーンコマンドプロンプトウィンドウにリンクすることができます(Setting the Path and Environment Variables for Command-Line Buildsからのいくつかの指示)。Windows上でcl.exeを使用してvscodeでC/C++コードをコンパイルするにはtask.jsonを定義する方法はありますか?

1. cd "\Program Files (x86)\Microsoft Visual Studio 14.0\VC" 
2. vcvarsall amd64 
3. cl helloworld.c 

helloworld.cは、「Hello world!」を印刷するためのシンプルなCソースファイルです。私はtask.jsonを直接コンパイルして、コードのC/C++プログラムをリンクするように設定しようとします。ここに私のtask.jsonは次のとおりです。

{ 
    // See https://go.microsoft.com/fwlink/?LinkId=733558 
    // for the documentation about the tasks.json format 
    "version": "0.1.0", 
    "command": "vcvarsall amd64 && cl", 
    "isShellCommand": true, 
    "args": ["${file}"], 
    "showOutput": "always" 
} 

そしてvsvarsallclのパスがPATHに追加されました。しかし、それはまだ動作しません(出力はポストの最後に置かれます)。ですから私の質問は、まず、vcvarsall amd64を実行してシステム変数を設定してから、clコマンドを実行してプログラムをコンパイルしてリンクするtask.jsonを定義する方法です。

enter image description here

+0

どうすれば失敗するのでしょうか? –

+0

@ RudolfsBundulis:質問の最後に出力を掲載しました。 –

+0

ありがとうございます。まあ、私はVisual Studioコードをインストールして実際に何が起きているのかを調べることはできません。しかし、あなたが必要とするものを '.bat'ファイルに入れ、それに' command'パラメータを指定するだけの理由はありませんか?それはうまくいくでしょうし、VSCがコマンドを処理する方法について心配する必要はありません。なぜなら、あなたが今行っていることは奇妙に思えるからです.2つの 'cmd'オペレーションを連結し、ファイルをパラメータとして渡します。私は、バッチファイルを助言し、ちょうど 'command'値でそれへのパスを設定します。 –

答えて

1

としてRudolfs Bundulisそれはあなたがする必要があるすべてを行うの内側に、バッチファイルを作成し、それを呼び出して、言いました。

tasks.json:

{ 
    // See https://go.microsoft.com/fwlink/?LinkId=733558 
    // for the documentation about the tasks.json format 
    "version": "0.1.0", 
    "command": "build.bat", 
    "isShellCommand": true, 
    "args": [], 
    "showOutput": "always"  
} 

そして、あなたのプロジェクトでは、あるbuild.bat良さを持っています。

あるbuild.bat:

@echo off 
call "E:\programs\VS2015\VC\vcvarsall.bat" x64  <----- update your path to vcvarsall.bat 

.. 
cl %YourCompilerFlags% main.cpp %YourLinkerFlags% 
.. 

私はvcvars環境を設定し、そうでないので、エディタを起動します別のVisual Studioのコードbootstraperバッチを持っているあなたが好きなことは言うだろうビルドごとにvcvarsを設定します。そのような:

@echo off 
call "E:\programs\VS2015\VC\vcvarsall.bat" x64  <----- update your path to vcvarsall.bat 

code 

あなたがコードをコンパイルvcvarsall.batたびに設定を省略することができますこの方法。 Minimal rebuild flagも多くの助けになるので、変更されたファイルだけをコンパイルします。

関連する問題