|
|
|
ウェブやソフトウェアに関するサポート&情報サイトです。サイト構築からソフトウェアの作成、利用まであなたの助けになるかも・・・・しれません。たぶん・・。
今や、Windows ユーザにとって Visual Studio Express や Visual Studio Community が無料で利用できるうれしい限りの環境となっています。
少し前まで、高価な Visual Studio を購入するか、mingw ( g++ ) でゴリゴリ記述して開発やるか、選択肢が少ない環境でしたが、
今やいろんな選択肢があります。
今回のVSCodeでも C/C++ 開発もその一つです。
ただ、一般的には、既に無料で手に入る Visual Studio Express や Visual Studio Community を使うことがもっとも
楽で便利で、開発を行う上ではスピーディな開発が行えることは間違いありません。
ただ、Visual Studio Express においては、2017で最後になる模様です。
Expressエディションは2017が最後となり、今後は代替としてVisual Studio CodeとVisual Studio Communityの利用が推奨されている。 (出典:https://ja.wikipedia.org/wiki/Microsoft_Visual_Studio_Express )
Visual Studio Community では、ちょっとライセンスのしばりがきついと思われている方は、 VSCode への移行も勧めているらしいので、 今回は、VSCodeで MSBuild(Visual Studio Express) を使ったC/C++開発環境を整えてみたいと思います。
2017-10-18 初版
VSCodeで C/C++ の開発を行う上で、最低限必要なものは、以下のものです。
→ https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
Visula Studio のプロジェクトファイルは、VC++ Expressでも作成できますので、
そちらで済ませる方にはここでは不要です。
ただ、g++ や MinGW などへの移行もいずれは考える必要がある方は、ここで CMake を導入しておくと、
mingw、g++のmakefileの出力も CMake で可能ですから、あとで楽に移行ができるかと思います。(ここでは、インストール先を "C:\CMake" として解説します )
→ https://cmake.org/download/
上記は、すべて無料です。 それぞれ、指示に従いインストールしましょう。
VSCodeで C/C++ で簡単なプログラミングをやってみます。
適当なディレクトリを作成し、そこをここで利用する Hello World のプロジェクトディレクトリとします。
ここでは、"C:/project/vsc/hello/" とします。
まずは、定番 Hello world の "hello.cpp" を作成します。
[ hello.cpp ]
|
先の "hello.cpp" の編集を終えたら、以下のように表示されているかと思います。
上記の緑の波線は、エラー表記となっています。
これは、C/C++ for Visual Studio Code(Extension) によって簡易エラー表記されているものですので、
これはこれで、先のExtensionが間違いなく動作していることでもあります。
上記の緑の波線は、実際にはエラーではないので、C/C++ for Visual Studio Code(Extension) が
正しく判断できていないことは、ソースコードからもわかります。
では、C/C++ for Visual Studio Code(Extension) が正しく判断できるように設定し、先の緑の波線のエラー表記を解除してみます。
Ctrl + Shift + P でコマンドパレット(ショートカットが設定されていない場合は、[表示]-[コマンドパレット])を表示します。
コマンドパレットから、"C/Cpp: Edit Configurations..." を選択します。
以下のデフォルトの C/C++ 設定ファイル( .vscode/c_cpp_properties.json ) が、カレントディレクトリの .vscode ディレクトリ に作成されます。
[ .vscode/c_cpp_properties.json ]
|
とりあえず、インストールされている最新? Windows SDK( Windows Kits )の include パスは設定?してくれるようです。
あとは、VC++の include パスを指定してあげると良さそうです。
VC++の include パスを確認する最も簡単な方法は、VC++の開発コマンドプロンプトで環境変数の include を出力することです。
VC++の開発コマンドプロンプトは、Express版にもありますし、Windowsのスタートメニューから起動できます。
以下は、Visual Studio 2013 Express for Desktop での例です。
|
先のデフォルトのc_cpp_properties.json に設定されていない上2行をコピーすれば良さそうです。
先で出力した include パスで、c_cpp_properties.json に設定されていない部分を加筆します。
[ .vscode/c_cpp_properties.json ]
|
"includePath"(インクルード用パス) および "path"(インテリセンス用パス) に上2行を追記しました。
これで保存します。
C/C++ 設定ファイル( .vscode/c_cpp_properties.json )の更新を行えば、エラー表記が消えるはずなので、確認してみます。
上記のようにエラー表記の緑の波線が無くなっていればOKです。
先に作成した "hello.cpp" をコンパイル、リンクし実行ファイルを作成します。
ここでの例が1つのソースコードなので、VC++の環境からすれば、cl.exe コマンドで実行ファイルを簡単に作成することもできます。
ただ、ここでは、MSBuild を使って VC++ のIDE環境と同じようにビルド(コンパイル、リンク)できるようにプロジェクトファイルを作成し、
実際にMSBuild を使ってビルドしてみます。
(以降では、手動で行っていますが、本来はビルドタスクへ登録を行い、そのビルドタスクを実行することでビルドし、実行ファイルを作成します。
確認作業の解説は要らない方は、ビルドタスクの項へどうぞ。)
VC++ のプロジェクトファイルは、ここでは、CMake を使ってみます。
もちろん、既にVC++ はインストールされているはずなので、VC++のIDEを使って、空のコンソールプロジェクトを作って先の "hello.cpp" を追加すれば簡単にできます。
CMake を使って回りくどいことをしたくない方は、VC++のIDEを使ってプロジェクトファイルを作成し、次のビルドしてみる へ進んでください。
CMake が "C:\CMake" にインストールされているものとして、以降、簡単に解説してみます。
同一ディレクトリに "CMakeLists.txt" ファイルを作成し、以下の2行を追加します。
これで、hello.exe というコンソール実行ファイルが作成できるプロジェクトを作成できます。
[ CMakeLists.txt ]
|
先に作成した CMake の設定ファイル(CMakeLists.txt) から DOSプロンプトから CMake を実行してVC++のプロジェクトファイルを出力してみます。 ここでは、先にも例に使った Visual Studio 2013 express のためのプロジェクトファイルを作成してみます。
|
"hello.vcxproj" が作成されているので OK のようですね。
先のプロジェクトファイル作成で作成したプロジェクトをビルドしてみましょう。
ビルドには、先に記述したように "MSBuild.exe" を使います。
MSBuildは、.NET Framework ベースなので、3.5 から 4.0 までは、同梱されていた?ようで、
C:\Windows\Microsoft.NET\Framework\v3.5
のように最後がバージョン情報となるようなディレクトリにあります。
MSBuildのバージョンが 4.0 以降は、
C:\Program Files (x86)\MSBuild\12.0
のようにMSBuildは分離され別のディレクトリとなっています。
ここでは、Visual Studio 2013 express なので、
このVSのバージョンだと .NET Framework 4.5.1 に対応しているので、それ以下のバージョンで動くMSBuild の最新は、MSBuild 12のようなのでそれを使ってみます。
( 参考 : https://msdn.microsoft.com/ja-jp/library/bb822049(v=vs.110).aspx )
|
上記のような出力であればOKのようです。
先に手動で行っったビルド作業をビルドタスクとしてtasks.json に記述することでコマンド起動することができます。 では、早速、ビルドタスクとして登録してみましょう。
Ctrl + Shift + P でコマンドパレット(ショートカットが設定されていない場合は、[表示]-[コマンドパレット])を表示します。
コマンドパレットから、"Tasks: Configure Task" を選択します。
以下のデフォルトの ビルドタスクファイル( .vscode/tasks.json ) が、カレントディレクトリの .vscode ディレクトリに作成されます。
[ .vscode/tasks.json ]
|
ビルドタスクファイル( .vscode/tasks.json ) の雛形に、まずは、CMake のタスクを設定します。
[ .vscode/tasks.json ]
|
雛形から手を加えたのは、以下の項目になります。
文字通りタスク名になります。この名前は、ビルドタスクを実行するときの一覧に表示されます。
実行するコマンドイメージです。
先のコマンドに渡すパラメータです。カンマ区切りで複数指定可です。
結果出力の文字列のジャンプ先取得の正規表現になります。これは、既定のものになります。
ビルドタスクファイル( .vscode/tasks.json ) に、MSBuild のタスクを設定します。
[ .vscode/tasks.json ]
|
雛形から手を加えたのは、以下の項目になります。
文字通りタスク名になります。この名前は、ビルドタスクを実行するときの一覧に表示されます。
実行するコマンドイメージです。MSBuild のフルパスを指定しました。
先のコマンドに渡すパラメータです。カンマ区切りで複数指定可です。 Configuration=Release のようにリリース版とデバッグ版でそれぞれのパラメータを指定しました。
ここまでで設定は終了です。 設定がうまくいっているか確認のために、一度、実行してみます。
ここでは、"cmake" をクリックしてみます。
ここでは、"タスクの出力をスキャンせずに続行" をクリックしてみます。
正しく動作したら、実行結果がターミナルへ出力されます。 上記のように出力されればOKです。
最後にデバッグ実行してみます。 もちろんブレークポイントを設定して、停止してみます。
サイドメニューのデバッグをクリックし、歯車アイコンをクリック( メニューの[デバッグ]-[構成の追加...] でも可 )して デバッグ環境の一覧が表示されます。
ここでは、"C++(Windows)" を選択します。
以下のデフォルトのデバッグ設定ファイルが( ./vscode/launch.json )作成されます。
[ .vscode/launch.json ]
|
デバッグ設定ファイルを編集します。
編集するといっても デバッグ対象の実行ファイルを指定している "program" の1行だけです。
[ .vscode/launch.json ]
|
設定はこれでOKです。
ソースコードにブレークポイントを設定し、これでデバッグ実行してみます。
"hello.cpp" を開き適当な場所にマウスでクリックするとブレークポイントが設定できます。
それで、[ デバッグ ] - [ デバッグ開始 ] でデバッグ実行してみると、先の設定したブレークポイントで
停止すれば、環境的には、全て整ったことになります。
上のgif 動画は、そのデバッグ実行の様子です。
最後に指定したブレークポイントで正しく停止していますのでOKですね。
ウェブやソフトウェアに関するサポート&情報サイトです。サイト構築からソフトウェアの作成、利用まであなたの助けになるかも・・・・しれません。たぶん・・。
Copyright (C) 2009-2024 www.off-soft.net All Rights Reserved.
コメントをどうぞ