Ubuntu+VsCode++搭建C++开发环境

打印 上一主题 下一主题

主题 1844|帖子 1844|积分 5542

Ubuntu下使用VsCode搭建C++开发环境

1、根本工具的安装

起首Ubuntu下安装好C++开发的一个些根本工具g++、gdb、make、cmake等,安装方式点这里
查抄一下安装环境
  1. $ g++ --version
  2. g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0
  3. Copyright (C) 2021 Free Software Foundation, Inc.
  4. This is free software; see the source for copying conditions.  There is NO
  5. warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  6. $ gdb --version
  7. GNU gdb (Ubuntu 12.1-0ubuntu1~22.04.2) 12.1
  8. Copyright (C) 2022 Free Software Foundation, Inc.
  9. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  10. This is free software: you are free to change and redistribute it.
  11. There is NO WARRANTY, to the extent permitted by law.
  12. $ make --version
  13. GNU Make 4.3
  14. Built for x86_64-pc-linux-gnu
  15. Copyright (C) 1988-2020 Free Software Foundation, Inc.
  16. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  17. This is free software: you are free to change and redistribute it.
  18. There is NO WARRANTY, to the extent permitted by law.
  19. $ cmake --version
  20. cmake version 3.22.1
  21. CMake suite maintained and supported by Kitware (kitware.com/cmake).
复制代码
2、VsCode环境搭建

打开vscode(未安装则自行安装vscode),点击extension,搜索C++,安装c/c++插件

安装完成后,测试一下,创建一个新目次cpp_proj_test,用vscode打开,创建一个main.cpp文件,内容如下:
  1. // main.cpp
  2. #include <iostream>
  3. using namespace std;
  4. int main()
  5. {
  6.     cout << "Hello World!!!!!" << endl;
  7.     return 0;
  8. }
复制代码

生存后,按ctrl+F5 不调试直接实行步伐

这里选择上面第二个c/c++这个编译器,点击后如下

正常编译,查看一下下面TERMINAL终端面板,乐成编译并实行了

这时,我们的cpp_proj_test项目目次下,多了一个编译结果文件main,以及vscode工程项目的专用配置文件.vscode/tasks.json ,如下所示

tasks.json的内容如下
  1. {
  2.     "tasks": [
  3.         {
  4.             "type": "cppbuild",
  5.             "label": "C/C++: g++ build active file",
  6.             "command": "/usr/bin/g++",
  7.             "args": [
  8.                 "-fdiagnostics-color=always",
  9.                 "-g",
  10.                 "${file}",
  11.                 "-o",
  12.                 "${fileDirname}/${fileBasenameNoExtension}.out"
  13.             ],
  14.             "options": {
  15.                 "cwd": "${fileDirname}"
  16.             },
  17.             "problemMatcher": [
  18.                 "$gcc"
  19.             ],
  20.             "group": {
  21.                 "kind": "build",
  22.                 "isDefault": true
  23.             },
  24.             "detail": "Task generated by Debugger."
  25.         }
  26.     ],
  27.     "version": "2.0.0"
  28. }
复制代码
3、vscode编译调试环境配置

vscode中的重要的配置文件重要有三个:c_cpp_properties.json,launch.json,tasks.json
这个几个文件的关系是什么呢?起首c_cpp_properties.json文件负责配置编译器最根本的参数,如编译器标准及版本、一些依赖include的位置等;tasks.json则是默认的一次编译任务,使用些什么编译命令及编译参数实行编译任务;而launch.json则是默认的一次启动,的一些环境变量、启动参数等;
   launch.json是启动目的文件的配置,该文件中,通常可以定义启动目的文件之前,可以做一些处理,如:每次启动前,先编译一遍;
  实际上,可以如许区分:launch.json管实行编译结果的一些默认配置、而task.json管实行编译的默认配置,而c_cpp_properties.json则管编译相干的一些最根本的配置
1)c_cpp_properties.json配置

该文件是编译器的配置文件,配置包含:gcc/g++路径、include头文件路径、C++标准等。
按下ctrl+shift+P ,输入c/c++:Edit Configurations ,出现如下,选择下面第二个,自动创建一个配置文件

  1. {
  2.     "configurations": [
  3.         {
  4.             "name": "Linux",
  5.             "includePath": [
  6.                 "${workspaceFolder}/**"
  7.             ],
  8.             "defines": [],
  9.             "compilerPath": "/usr/bin/gcc",
  10.             "cStandard": "c17",
  11.             "cppStandard": "gnu++17",
  12.             "intelliSenseMode": "linux-gcc-x64"
  13.         }
  14.     ],
  15.     "version": 4
  16. }
复制代码
2)launch.json 配置

该文件是debug调试C/C++步伐(实行out文件)的配置文件,配置包含:debug类型等;tasks.json 文件告诉vscode如何编译cpp步伐。这会调用 g++ 编译器将源文件编译成可实行文件。为了方便VScode编译C++代码,可以将include头文件、lib动态链接库等路径写入 tasks.json配置文件里。
点击左侧的运行与调试 ,出现下面的面板

点击create a launch.json file 创建一个启动配置文件 launch,json如下:
  1. {
  2.     // Use IntelliSense to learn about possible attributes.
  3.     // Hover to view descriptions of existing attributes.
  4.     // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  5.     "version": "0.2.0",
  6.     "configurations": []
  7. }
复制代码
将launch.json配置文件修改为如下所示:
  1. {
  2.     // Use IntelliSense to learn about possible attributes.
  3.     // Hover to view descriptions of existing attributes.
  4.     // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  5.     "version": "0.2.0",
  6.     "configurations": [
  7.         {
  8.             /* 配置名称,将会在启动配置的下拉菜单中显示 */
  9.             "name": "(gdb) Launch",
  10.             /* 配置类型,cppdbg类型 */
  11.             "type": "cppdbg",
  12.             /* 请求配置类型,可以为launch(启动)或attach(附加) */
  13.             "request": "launch",
  14.             /* 将要进行调试的程序的路径 */
  15.             "program": "${workspaceFolder}/${fileBasenameNoExtension}.out",
  16.             /* 程序调试时传递给程序的命令行参数,一般设为空即可 */
  17.             "args": [],
  18.             /* 设为true时程序将暂停在程序入口处,一般设置为false */
  19.             "stopAtEntry": false,
  20.             /* 调试程序时的工作目录 */
  21.             "cwd": "${workspaceFolder}",
  22.             "environment": [],
  23.             /* 调试时是否显示控制台窗口,一般设置为true显示控制台 */
  24.             "externalConsole": true,
  25.             "MIMode": "gdb",
  26.             "preLaunchTask": "build",
  27.             "setupCommands": [
  28.                 {
  29.                     "description": "Enable pretty-printing for gdb",
  30.                     "text": "-enable-pretty-printing",
  31.                     "ignoreFailures": true
  32.                 }
  33.             ]
  34.         }
  35.     ]
  36. }
复制代码
生存配置,进入main.cpp页面,再次按下ctrl+F5,弹出如下界面,提示未找到任务build

我们点击Debug Aanyway后,出现这个调试窗口,则表现乐成;

如需要消除上面的的task任务缺失弹框,可进一步配置Tasks.json,
3)tasks.json 配置

该文件是编译C/C++步伐(生成out文件)的配置文件,配置包含:include头文件路径、lib链接库路径等
按键输入ctrl+shift+P,输入搜索Tasks: Run Task如下,

点击Tasks: Run Task,进入后,鼠标移动到c/c++: g++ build activate file后面的齿轮配置按钮

点击齿轮按钮Configure Task,打开Tasks.json配置文件,如下所示

前面launch.json中的"preLaunchTask": "build",属性,预启动的任务设置为build,则,我们需要修改tasks.json的label同样也为build即可;
修改后如下:
  1. {
  2.     "tasks": [
  3.         {
  4.             "type": "cppbuild",
  5.             "label": "build",
  6.             "command": "/usr/bin/g++",
  7.             "args": [
  8.                 "-fdiagnostics-color=always",
  9.                 "-g","${file}",
  10.                 "-o","${fileDirname}/${fileBasenameNoExtension}",
  11.                 /* 项目所需的头文件路径 */
  12.                 "-I","${workspaceFolder}/include",
  13.                 "-I", "/usr/include",
  14.                                 "-I", "/usr/local/include",
  15.                 /* 项目所需的库文件路径 */
  16.                 "-L", "/usr/local/lib",
  17.             ],
  18.             "options": {
  19.                 "cwd": "${fileDirname}"
  20.             },
  21.             "problemMatcher": [
  22.                 "$gcc"
  23.             ],
  24.             "group": {
  25.                 "kind": "build",
  26.                 "isDefault": true
  27.             },
  28.             "detail": "Task generated by Debugger."
  29.         }
  30.     ],
  31.     "version": "2.0.0"
  32. }
复制代码
再次按下ctrl+F5,则不会再提示了


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

篮之新喜

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表