Ubuntu 系统使用 Visual Studio Code(vs code) 跑 C++项目
正文
1、前景知识介绍
本篇博客介绍如何在 Ubuntu 20.04 环境下,配置 Visual Studio Code,从而使用 GCC (C++ compiler (g++)) 和 GDB (debugger)。
这里介绍一下,GCC 表示 GNU Compiler Collection 编译器集合; GDB 是 GNU debugger。
GCC,它可以编译C、C++、JAV、Fortran、Pascal、Object-C等语言。gcc 是 GCC 中的 GNU C Compiler(C 编译器),g++ 是GCC中的GNU C++ Compiler(C++编译器)。
gcc 和 g++ 存在些许的区别,想要了解可以查看博客
2、预先准备条件
在创建项目之前,我们需要准备 3 个工作。
- 安装 VS Code
- 在 VS Code 中安装 C++ extension
- 确保 Ubuntu 中安装了 GCC(GNC Compiler Collection)
安装 VS Code 去官网 下载 .deb,将下载完成的 .deb 文件使用 dpkg -i 文件名.deb
安装即可。
安装 VS Code 完成后,进入软件,安装 C++ extension 过程如下图所示:
确保 GCC 在 Ubuntu 系统已经安装。 VS Code 编译、运行、调试 C++ 项目,需要确保 Ubuntu 系统中已经存在 GCC 和 GDB,倘若不存在可以使用 apt-get 命令安装。
首先,使用命令 gcc -v
查看系统中是否存在 GCC,倘若存在的话,那么 GCC 版本将会在命令行中给出。
如果,GCC不存在,我们考虑安装
sudo apt-get update # 更新 apt-get 工具,如果不更新可能会影响某些 package sudo apt-get install build-essential gdb # 安装 GNU Compiler 工具和 GDB调试
3、创建 Hello World 项目
创建打开项目
首先,打开 Terminal
创建项目文件夹。而后,使用 VS Code 将项目文件夹打开
mkdir projects # 总的 VS Code 项目文件夹,可以不创建,但是一个总的文件夹,可以方便以后你查找项目 cd projects mkdir helloworld # 用于这次项目的文件夹 Hello World cd helloworld # 进入到该文件夹 code . # 在该文件夹内打开 VS Code,该文件夹就相当于 Workspace
如果你按照本篇博客的思路走,你将会在 Workspace
中 .vscode
目录下创建 3 个文件
tasks.json
(compiler build settings)launch.json
(debugger settings)c_cpp_properties.json
(compiler path and IntelliSense settings)
创建 C++ 文件
在项目中 New File,并将其命名为 helloworld.cpp
可以将以下代码复制到 cpp 文件中,进行测试
#include <iostream> #include <vector> #include <string> using namespace std; int main() { vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"}; for (const string& word : msg) { cout << word << " "; } cout << endl; }
每次修改完文件,记得使用 ctrl + s
保存文件。
4、运行 Hello World 项目
在运行 Hello World 项目前,需要确保 Ubuntu 系统中已经有了 C++ compiler,虽然 VS Code 中已经下载了 C++ extension,但是他调用的仍然是系统的 C++ compiler 和 C++ Debuger。
运行 Hello World
首先,我们选中 cpp
文件,将其打开,并点击 play
按钮
然后,从 VSCode
所检测的 Compiler
中选择 g++ build and debug active file
。并且只有当你第一次运行项目是需要选择 compiler
。此后 compiler
信息会被存储在 task.json
文件中作为 default
。
终端 teriminal
会输出结果信息。
第一次运行时,之前在 VS Code 中下载的 C++ extension
会自动在 .vscode
文件夹中生成 task.json
文件,该文件存储了项目的 build 配置信息。
你的 task.json
文件应当和下方给出的形式类似。
{ "tasks": [ { "type": "cppbuild", "label": "C/C++: g++ 生成活动文件", "command": "/usr/bin/g++", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "调试器生成的任务。" } ], "version": "2.0.0" }
json 文件参数介绍
前文给出了 json 中,详细的介绍以下他的参数。
command
指定了项目运行的程序,在这个例子中是 g++
,并给出了绝对路径
args
指定了 传递给 command
指定程序 (本次是g++
) 的参数,并且这些参数需要按照顺序给出。
如本项目执行时候应该是 /usr/bin/g++ -g ${file} -o ${fileDirname}/${fileBasenameNoExtension}
。 其中-g
选项告诉GCC
产生能被GNU
调试器使用的调试信息,以调试程序。结合 -o
产生带调试信息的可执行文件test(o小写)。
task.json
文件是告诉 g++ 对 ${file}
文件处理,编译,并在 ${fileDirname}
文件夹内产生一个和${file}
同名,但是没有扩展名称的可执行文件${fileBasenameNoExtension}
,对于本次就是 helloworld
。
label
是在 tasks list 显示的文字,你可以给他任意命名。
detail
是在 tasks list 中该 task 的描述信息,强烈推荐在相同的 tasks 任务中,使用 details 将他们区分。
你可以修改 tasks.json 来 build 多个 C++ 文件,通过使用 参数像是 ${workspaceFolder}/*cpp
而不是${file}
。这将会build所有的 cpp 文件在当前的 文件夹下。
同时,你也可以将输出文件名称${fileDirname}/${fileBasenameNoExtension}
修改为helloworld.out
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)