merasa malas,
Ini adalah tasks.json
dari vscode untuk distro linux, untuk mengkompilasi beberapa file cpp.
{
"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
}
}
]
}
Ini adalah jawaban Windows untuk masalah yang sama:
Saya juga berjuang dengan ini sampai saya menemukan jawaban berikut di https://code.visualstudio.com/docs/cpp/config-mingw :
Anda dapat memodifikasi task.json untuk membuat beberapa file C++ dengan menggunakan argumen seperti
"${workspaceFolder}\\*.cpp"
bukannya${file}
. Ini akan membangun semua file .cpp di> folder Anda saat ini. Anda juga dapat memodifikasi nama file keluaran dengan mengganti"${fileDirname}\\${fileBasenameNoExtension}.exe"
dengan nama file hard-coded (untuk>contoh"${workspaceFolder}\\myProgram.exe"
).
Perhatikan bahwa F di workspaceFolder dikapitalisasi.
Sebagai contoh, di file task.json saya di proyek saya, teks di antara tanda kurung di bawah "args" awalnya muncul sebagai berikut:
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
Ini memberi saya kesalahan referensi karena hanya mengkompilasi satu dan bukan kedua file saya.
Namun, saya dapat menjalankan program setelah mengubah teks tersebut menjadi berikut:
"-g",
"${workspaceFolder}\\*.cpp",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
di task.json:
"label": "g++.exe build active file",
"args": [
"-g",
"${fileDirname}\\**.cpp",
//"${fileDirname}\\**.h",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
],
di launch.json:
"preLaunchTask": "g++.exe build active file"
itu akan berfungsi jika sumber Anda berada di folder terpisah
Jika Anda memiliki banyak file dan satu file bergantung pada cpp
file untuk yang lain, Anda perlu memberi tahu g ++ untuk mengompilasinya juga, sehingga linker dapat menemukannya. Cara paling sederhana adalah:
$ g++ Cat.cpp main.cpp -o Classes