VScodeはC ++コンパイル環境を構成します[201017]
私は以前、研究室の先輩の勧めでコードの編集とデバッグの作業を完了するためにVSを使用していましたが、ドキュメントのコンパイル機能については、VSはWindowsでの複数ファイルのコンパイルのみをサポートし、 Urbanuシステム。VScodeの使用法の学習に切り替えます。
この記事では、過去数日間のVScodeのインストールとデバッグ、およびC ++コンパイル環境の構成のプロセスに関する経験を共有します。一方では、読者に何らかの支援を提供したいと考えています。私は将来の構成プロセスで自分自身を助け、以前の踏みつけられたピットを確認します。
VScodeのダウンロード
VScodeのダウンロードに関しては、作者は公式Webサイトから直接ダウンロードし、通常のダウンロードプロセスに従って段階的にインストールしました。
MinGWのインストール
MinGWとは何ですか?
MinGWは、Windowsでのシンプルで便利なGCCベースのプログラム開発環境を提供します。MinGWは、一連の無料のWindowsヘッダーファイルとライブラリファイルを収集します。また、GNU(http://www.gnu.org/)ツールセット、特にクラシックgcc、g ++などのGNUプログラム開発ツールを統合します。MinGWは完全に無料で無料のソフトウェアです。Windowsプラットフォーム上のLinuxでのGCCの開発環境をシミュレートし、C ++のクロスプラットフォーム開発のための優れた基本サポートを提供します。Windowsで作業するプログラマーがC ++エンジニアリングに精通するために提供されます。 Linuxでの組織。条件。
簡単に理解すると、MinGWはWindowsシステム用のC / C ++コンパイル環境を提供します。
VSとVScodeの違いは次のとおりです。VScodeは実際には「テキストドキュメント」です。ダウンロードしたばかりのVScodeにはテキスト編集機能しかありませんが、VSにはテキスト編集、コードコンパイル、実行、デバッグなどの多くの機能がありますが、対応しています、VSも非常に大きいため、VScodeは利便性の点でVSよりも大幅に優れています。
ただし、これは、VScodeにさまざまな機能を持たせたい場合は、さらに多くの構成作業を完了する必要があることも意味します。
特定のMinGWインストールには、環境変数の構成なども含まれます。特定の操作については、次の記事を参照してください。
https://blog.csdn.net/qq_43041976/article/details/100542557
MinGWのインストールパスは、環境変数の構成であろうとコンパイル環境の構成であろうと、明確でなければならないことに注意してください。そのアドレスを使用する必要があります。
環境変数とは
環境変数は通常、一時フォルダーの場所やシステムフォルダーの場所など、オペレーティングシステムのオペレーティング環境を指定するためにオペレーティングシステムで使用されるいくつかのパラメーターを参照します。
環境変数は、オペレーティングシステムで特定の名前を持つオブジェクトであり、1つ以上のアプリケーションで使用される情報が含まれています。たとえば、WindowsおよびDOSオペレーティングシステムのパス環境変数。システムがプログラムの場所を示すフルパスを指定せずにプログラムを実行する必要がある場合、システムは現在のディレクトリでプログラムを検索し、次の場所に移動する必要があります。パスで指定されたパスに。ユーザーは、環境変数を設定することで、プロセスをより適切に実行できます。
ここで、STM32およびMK66マイクロコントローラーのデバッグプロセスで、呼び出された.hファイルを特定の場所に追加して、コンパイラーがファイルを見つけられるようにする必要があると考えました。これは、ここの構成環境変数に似ている可能性があります。
環境変数の場所は次のとおりです。このコンピューター-プロパティ-高度なシステム設定-高度な環境変数-システム変数-パス
C ++の小さなプロジェクト構成
作成者の実際の構成経験と組み合わせて、VScodeでC ++プログラムを実行する場合は、少なくとも次のコンポーネントが必要です。
- プロジェクトフォルダ
- .vscodeという名前のフォルダー
- cppサフィックスファイル
- c_cpp_properties.jsonファイル
- launch.jsonファイル
- tasks.jsonファイル
作成者は新しい方法を完全に使用してこれらのファイルの作成を完了しました。完了すると、次の図に示すプロジェクト構造がVScodeインターフェイスの左側のエクスプローラーに表示されます。
プロジェクトの確立時に、最初に作成しました。 VSCODE_TESTという名前のフォルダー、helloWorld.cppという名前のファイルがこのフォルダーに作成され、.vscodeという名前のフォルダーが同時に作成され、3つのjsonファイルがこの.vscodeフォルダーに作成されます。
図に示されている.exeファイルは、コンパイルが成功した後にプロジェクトによって自動的に生成された実行ファイルです。
cppおよびjsonファイルのコード
- cppファイル
cppファイルは、main関数を記述するファイルです。このファイルでは、最も基本的なC ++コードを入力するだけで済みます。今回は、「I love SLAM」を印刷して、プロジェクトが正常に実行されているかどうかをテストしました。
#include <iostream>
using namespace std;
int main()
{
cout<<"我爱SLAM"<<endl;
system("pause");
return 0;
}
- c_cpp_properties.json
このファイルは、コンパイルと操作にとって重要なファイルの1つであり、複数のMinGWファイルアドレスの書き込みが含まれます。これらのアドレスの取得については、前の記事で説明しました。最初のアドレスは、実際のアドレスに応じて変更する必要があります。 、その他「実行」ウィンドウから指示を入力することで直接生成できます。
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceRoot}",
"E:/MinGW/mingw64/include/**",
"E:/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
"E:/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
"E:/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
"E:/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include",
"E:/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",
"E:/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"__GNUC__=6",
"__cdecl=__attribute__((__cdecl__))"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": "",
"path": [
"${workspaceRoot}",
"E:/MinGW/mingw64/include/**",
"E:/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
"E:/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
"E:/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
"E:/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include",
"E:/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",
"E:/MinGW/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include"
]
}
}
],
"version": 4
}
- launch.json
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - 生成和调试活动文件",
"type": "cppdbg", // 只能是cppdbg
"request": "launch", // launch:启动,attach:附加
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe", // 需要调试的程序
"args": [], // 调试时传递给程序的参数
"stopAtEntry": false, // 调试时是否停在程序入口:{true:是,false:否}
"cwd": "${workspaceFolder}", // 工作目录
"environment": [], // 额外的环境变量
"externalConsole": true, // true:输出到外部终端;false:只输出到软件终端(有显示不全的可能)
"MIMode": "gdb",
"miDebuggerPath": "E:\\MinGW\\mingw64\\bin\\gdb.exe", // 调试gdb路径
"setupCommands": [ // 暂时不知道作用
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe build active file" // 预编译任务名称,和tasks.json中的label必须相同
}
]
}
このドキュメントの一部のステートメントの機能はコメントでマークされています。独自のMinGWと組み合わせてgdb.exeのアドレスも変更する必要があることに注意してください。
- tasks.json
{
"tasks": [
{
"type": "shell",
"label": "C/C++: g++.exe build active file",
"command": "E:\\MinGW\\mingw64\\bin\\g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
],
"version": "2.0.0"
}
また、g ++。exeのアドレスを自分で変更する必要があることにも注意してください。
プログラムを実行する
上記の作業が完了したら、cppファイルインターフェイス(このファイルにある理由がわかりません、またはエラーが報告されます)で、左側の実行インターフェイス(小さなバグ)をクリックし、 [プログラムの実行]をクリックして、プログラムを実行します。操作の結果を図に示します。
ここでは、launch.jsonファイルが "externalConsole":trueに設定されているため、黒いプログラム実行ボックスが表示される可能性があります。falseに設定されている場合は、出力されて出力されます。以下の「ターミナル」。
また、漢字を出力する際に文字化けが発生する場合があります。著者は百度が取得した設定方法を参考にして、通常の漢字表示を実現しています。具体的な方法は、領域をリセットして場所をチェックすることです。
特定のプロセスについては、記事を参照してください。
https://blog.amahv.cn/2020/06/24/vscode-shu-chu-chuang-kou-zhong-wen-luan-ma/
追記
VScodeプラグインの使用や特定のインストール手順については言及されておらず、cmakeの使用についても言及されていません。読者は他のネチズンの共有を確認することをお勧めします。そうすれば、間違いなく多くの利益を得ることができます。
今回のVScodeの設定の過程で、最初はその複雑さと優雅さを感じましたが、後でUrbanuシステムで設定するときに、別の要約記事があるはずです。
読んでくれてありがとう!