VSCode编译C++代码遇std::cout未定义引用错误求助
问题解决:VSCode中C++代码编译出现std::cout未定义引用错误
问题原因
用gcc编译C代码时,默认不会自动链接C标准库,导致std::cout等标准库相关符号无法被找到。而你在终端直接运行时应该使用了g++(或gcc附带了链接参数),所以能正常编译。
解决方法(二选一即可)
方法1:将编译命令改为g++
修改tasks.json中的command字段,把/usr/bin/gcc替换为/usr/bin/g++:
{ "tasks": [ { "type": "cppbuild", "label": "C/C++: g++ build active file", "command": "/usr/bin/g++", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "Task generated by Debugger." } ], "version": "2.0.0" }
方法2:给gcc添加链接C++标准库的参数
如果坚持使用gcc,在args数组末尾添加-lstdc++参数,强制链接C++标准库:
{ "tasks": [ { "type": "cppbuild", "label": "C/C++: gcc build active file", "command": "/usr/bin/gcc", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}", "-lstdc++" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "Task generated by Debugger." } ], "version": "2.0.0" }
验证修改
保存修改后的tasks.json,重新编译你的Hello World代码,即可正常运行。
内容的提问来源于stack exchange,提问作者HIMYM
相关产品推荐
相关产品推荐

