Skip to main content

vscode正确输出C++

这个错误似乎与标准 C++ 库的链接有关。在编译时,编译器找不到与标准输出流 std::cout 相关联的库文件,导致链接失败。

这可能是由于没有正确链接 C++ 标准库引起的。在使用 GCC 进行编译时,你需要确保正确地链接 C++ 标准库。你可以添加 -lstdc++ 选项来告诉编译器链接 C++ 标准库。尝试修改你的编译命令,类似这样:

bashCopy code
E:\E\mingw64\bin\g++.exe -fdiagnostics-color=always -g E:\E\ProjectFile\DS_HFM_en_de\hfm\test.cpp -o E:\E\ProjectFile\DS_HFM_en_de\hfm\build\test.exe -lstdc++

这个命令中的 -lstdc++ 选项用于链接 C++ 标准库。请注意,对于 C++ 文件,建议使用 g++.exe 而不是 gcc.exeg++.exe 默认会链接 C++ 标准库,而 gcc.exe 通常用于 C 代码的编译。

链接时缺失了目标文件

目前的笨方法

将来的方法

tasks.json 中使用循环遍历文件并编译所有文件是不可行的,因为 JSON 的任务配置无法直接支持这种操作。

如果你想在 Visual Studio Code 中编译多个源文件,最好的方法是明确列出需要编译的每个文件,或者使用类似 CMake 这样的构建工具。

你可以手动列出所有的源文件,像这样:

jsonCopy code{
"version": "2.0.0",
"tasks": [
{
"label": "CompileAllFiles",
"type": "shell",
"command": "g++",
"args": [
"-fdiagnostics-color=always",
"-g",
"E:\\E\\ProjectFile\\DS_HFM_en_de\\hfm\\main.cpp",
"E:\\E\\ProjectFile\\DS_HFM_en_de\\hfm\\source\\file1.cpp",
"E:\\E\\ProjectFile\\DS_HFM_en_de\\hfm\\source\\file2.cpp",
"-o",
"E:\\E\\ProjectFile\\DS_HFM_en_de\\hfm\\build\\output.exe",
"-lstdc++"
]
}
]
}

这种方式需要手动列出每个需要编译的文件,并不够灵活。如果项目文件较多或者文件结构较为复杂,建议使用构建工具(如 CMake)来管理编译过程。