VS Code 配置C++环境
问题描述:
undefined reference to `std::cin' collect2.exe: error: ld returned 1 exit status
原因:
错误
undefined reference to 'std::cin'
通常是由于链接器找不到标准库(如 iostream)的原因。经过查找发现时配置文件中的默认配置编译器是gcc而不是c++所需要的g++
注意!!command路径那里改回自己的路径
tasks.json文件
`{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe build active file",
"command": "D:\Environment\msys2\ucrt64\bin\gcc.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"{fileDirname}\{fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
},
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "D:\Environment\msys2\ucrt64\bin\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"{fileDirname}\{fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": "bulid",
"detail": "compiler: D:\Environment\msys2\ucrt64\bin*g++.exe*"
}
],
"version": "2.0.0"
}`
解决方法
将g++那里的配置 "isDefault"设置为true
即
`{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe build active file",
"command": "D:\Environment\msys2\ucrt64\bin\gcc.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"{fileDirname}\{fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": false
},
"detail": "Task generated by Debugger."
},
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "D:\Environment\msys2\ucrt64\bin\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"{fileDirname}\{fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "compiler: D:\Environment\msys2\ucrt64\bin\g++.exe"
}
],
"version": "2.0.0"
}`# VS Code 配置C++环境
问题描述:
undefined reference to `std::cin' collect2.exe: error: ld returned 1 exit status
原因:
错误
undefined reference to 'std::cin'
通常是由于链接器找不到标准库(如 iostream)的原因。经过查找发现时配置文件中的默认配置编译器是gcc而不是c++所需要的g++
注意!!command路径那里改回自己的路径
tasks.json文件
`{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe build active file",
"command": "D:\Environment\msys2\ucrt64\bin\gcc.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"{fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
=="isDefault": true==
},
"detail": "Task generated by Debugger."
},
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "D:\Environment\msys2\ucrt64\bin\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"{fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
=="group": "bulid"==,
"detail": "compiler: D:\Environment\msys2\ucrt64\bin\==g++.exe=="
}
],
"version": "2.0.0"
}`
解决方法
将g++那里的配置 =="isDefault"设置为true==
即
`{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe build active file",
"command": "D:\Environment\msys2\ucrt64\bin\gcc.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"{fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": false
},
"detail": "Task generated by Debugger."
},
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "D:\Environment\msys2\ucrt64\bin\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"{fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "compiler: D:\Environment\msys2\ucrt64\bin\g++.exe"
}
],
"version": "2.0.0"
}`