错误描述:无法打开"libc-start.c":无法读取文件(Error:找不到文件(/build/glibc-LK5gWL/glibc-2.31/csu/libc-start.c))。
解决方案:
缺少编译的引入头文件的源文件用于报错定位,下载对应的源文件
报错版本为:2.31
$sudo mkdir -p /build/glibc-LK5gWL
$cd /build/glibc-LK5gWL
$sudo wget http://ftp.gnu.org/gnu/glibc/glibc-报错版本.tar.gz
$sudo tar -zxvf glibc-报错版本.tar.gz
//launch.json
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false, //是否显示外部调试窗口
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: gcc build active file",
"miDebuggerPath": "/usr/bin/gdb",
//去掉开头为/usr/bin/gdb --interpreter=mi的打印信息
"miDebuggerArgs": "-q -ex quit; wait() { fg >/dev/null; }; /usr/bin/gdb -q --interpreter=mi"
}
]
}
//tasks.json
{
"tasks": [
{
"type": "shell", //配置为cppbuild将会生成的文件放到根目录下,而改为shell会生成到当前目录下
"label": "C/C++: gcc build active file",
"command": "/usr/bin/gcc",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "/usr/bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Generated task by Debugger",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "new", //这里shared表示共享,改成new之后每个进程创建新的端口
"showReuseMessage": true,
"clear": true
}
}
],
"version": "2.0.0"
}