怠け者、
tasks.json
です 複数の cpp ファイルをコンパイルするための、Linux ディストリビューション用の vscode の。
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-g",
"${fileDirname}/*.cpp",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "/usr/bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
これは、同じ問題に対する Windows の回答です:
https://code.visualstudio.com/docs/cpp/config-mingw で次の回答が見つかるまで、これにも苦労していました:
<ブロック引用>
"${workspaceFolder}\\*.cpp"
のような引数を使用して、複数の C++ ファイルをビルドするように tasks.json を変更できます。 ${file}
の代わりに .これにより、現在のフォルダー内のすべての .cpp ファイルがビルドされます。 "${fileDirname}\\${fileBasenameNoExtension}.exe"
を置き換えることで、出力ファイル名を変更することもできます ハードコードされたファイル名 (例:"${workspaceFolder}\\myProgram.exe"
).
WorkspaceFolder の F は大文字であることに注意してください。
例として、私のプロジェクトの tasks.json ファイルでは、"args" の下の括弧内のテキストは、最初は次のように表示されていました:
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
これにより、両方のファイルではなく 1 つのみがコンパイルされたため、参照エラーが発生しました。
ただし、そのテキストを次のように変更した後、プログラムを動作させることができました:
"-g",
"${workspaceFolder}\\*.cpp",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
tasks.json:
"label": "g++.exe build active file",
"args": [
"-g",
"${fileDirname}\\**.cpp",
//"${fileDirname}\\**.h",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
],
launch.json:
"preLaunchTask": "g++.exe build active file"
ソースが別のフォルダーにある場合に機能します
複数のファイルがあり、そのうちの 1 つが cpp
に依存している場合 別のファイルの場合、リンカーがそれを見つけることができるように、g++ にもそれをコンパイルするように指示する必要があります。最も簡単な方法は次のとおりです:
$ g++ Cat.cpp main.cpp -o Classes