标签:文件 gcc VSCode C语言 源文件 编译 Linux workspaceFolder main
文件目录结构
包含目录
按ctrl + shift + P快捷键,选择“C/C++:编辑配置(JSON)”
进行包含文件的相关配置如下:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/include/**"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu17",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64",
"configurationProvider": "ms-vscode.makefile-tools"
}
],
"version": 4
}
编译配置
菜单栏选择“终端”,再选择“配置默认生成任务”,则再工作区的.vscode文件夹下生成如下所示的名为“task.json”的文件。
在此文件中,“args”参数中的“-g”参数的值默认为"${file}
",表示只编译当前文件(如,当活动文件为“main.c”时,按下ctrl+shift+B,则只编译“main.c”)。由于添加了头文件,该头文件对应的源文件也需要编译,该源文件与“main.c”位于同一目录,所以,“-g”参数的值改为"${workspaceFolder}/src/*.c
",表示编译该目录下的所有源文件,当然也可以具体逐个指定源文件名称。
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc build active file",
"command": "gcc",
"args": [
"-fdiagnostics-color=always",
"-g",
// "${file}", //只编译当前活动文件
// "main.c", "calculate.c", //编译指定的若干文件
"${workspaceFolder}/src/*.c", //编译文件夹下的所有源文件
"-o",
"${workspaceFolder}/out/${fileBasenameNoExtension}",
"-I",
"${workspaceFolder}/include"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "compiler: /usr/bin/gcc"
}
]
}
调试配置
{
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/out/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
标签:文件,gcc,VSCode,C语言,源文件,编译,Linux,workspaceFolder,main 来源: https://blog.csdn.net/zhpfeng10/article/details/121161080
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。