Ubuntu 20.04 上零基础搭建 VS Code + C++ 开发环境(VS Code + CMake)_vscode ubuntu
📋 前言
本文将详细介绍如何在Ubuntu系统下搭建一个完整的C++开发环境,包括VS Code编辑器配置、CMake构建系统、代码格式化、调试等功能,并完成一个完整的c++项目构建,并实现VSCode的一键编译配置以及自动优化格式。本人之前一直在windows环境中进行c++开发,最近要转入Ubuntu系统进行c++开发,因此记录如何在ubuntu下的vscode中进行c++开发的基本配置。
环境要求:
- Ubuntu 18.04+ (其他Linux发行版类似,本文用的Ubuntu20.04为例子)
 - 网络连接良好
 - 具备基本的Linux命令行操作能力
 
本文涵盖内容:
- ✅ 基础开发环境搭建
 - ✅ VS Code编辑器配置
 - ✅ 手把手带你用cmake配置运行一个c++代码
 - ✅ CMake项目结构设计
 - ✅ vscode中一键编译运行配置
 - ✅ 代码格式化自动化
 - ✅ IntelliSense智能提示配置
 
🛠️ 一、开发环境准备
1.1 安装基础开发工具
# 更新包管理器sudo apt update# 安装编译工具链和构建系统sudo apt install build-essential cmake gdb
可以如下命令检查是否安装成功:
# 查看build-essential 版本dpkg -s build-essential | grep Version# 查看gdb版本gdb --version# 查看cmake版本cmake --version
安装成功会输出如下内容。
 
工具说明:
build-essential: 包含gcc/g++编译器、make工具等基础编译环境cmake: 跨平台构建系统,用于管理复杂项目的编译过程gdb: GNU调试器,用于程序调试
1.2 安装VS Code编辑器
- 
下载安装VS Code
- 官网地址:https://code.visualstudio.com/
 - 选择.deb包下载,双击安装或使用命令:
选择.deb下载即可自动下载。

 
 - 
安装必要插件
打开VS Code,按Ctrl+Shift+X(或者按左边那个方块图标)进入扩展市场,搜索并安装如下插件:- Chinese (Simplified) (简体中文):提供汉化,安装完成后会自动重启软件
 - C/C++ (Microsoft): 提供语法高亮、智能提示、调试支持,安装后应该会自动安装其他相关插件
 - CMake Tools: CMake项目管理和构建
 - Clang-Format: 代码自动格式化

 
 
🏗️ 二、项目结构设计
2.1 创建标准化项目目录
ctrl+alt+t 打开终端,输入如下命令:
# 创建项目根目录mkdir -p ~/MyCppProject/{src,include}cd ~/MyCppProject# 进入vscode code .

推荐的项目结构:
MyCppProject├── CMakeLists.txt # CMake构建配置文件 ├── src  # 源代码目录│ └── main.cpp # 主程序入口├── include  # 头文件目录│ └── main.h # 头文件声明└── .vscode # VS Code配置目录 ├── c_cpp_properties.json #这个在后面会提供代码 ├── tasks.json #这个在后面会提供代码 └── settings.json #这个在后面会提供代码
按照上面结构新建文件和文件夹。在如图蓝色框内新建文件,命名为CMakeLists.txt,新建文件夹命名为.vscode。右击文件夹生成对应的文件。
 
文件生成后如下图:
 
为什么要这样组织目录?
- src/include分离: 便于头文件管理,避免循环依赖
 - CMakeLists.txt: 使用现代化构建系统,支持跨平台编译
 
2.2 编写示例代码
创建 src/main.cpp:
#include int main() { std::cout << \"Hello, C++ World!\" << std::endl; return 0;}
创建 include/main.h:
#ifndef MAIN_H#define MAIN_H#endif 
⚙️ 三、CMake构建系统配置
3.1 编写CMakeLists.txt
在项目根目录创建CMakeLists.txt,下面的是完整的示例,直接复制即可:
# 指定CMake最低版本要求 这个要根据项目要求,初学阶段是足够的cmake_minimum_required(VERSION 3.16)#--- 这部分基本上不用动,可以认为是固定搭配,在基础学习环节是足够的# 设置项目名称project(MyCppProject)# 设置C++标准(推荐C++17或C++14)set(CMAKE_CXX_STANDARD 17)set(CMAKE_CXX_STANDARD_REQUIRED ON)# 设置构建类型(Release版本会进行优化)set(CMAKE_BUILD_TYPE Release)# 启用详细的编译信息输出set(CMAKE_VERBOSE_MAKEFILE ON)#==============================================================================# 设置头文件搜索路径#==============================================================================include_directories( ${PROJECT_SOURCE_DIR}/include # 项目自定义头文件 /usr/local/include  # 本地安装的库 /usr/include  # 系统标准库)#==============================================================================# 设置库文件搜索路径#==============================================================================link_directories( /usr/local/lib # 本地安装的库文件 /usr/lib # 系统库文件)#==============================================================================# 创建可执行文件,这里是把可执行文件默认为了项目名,可以自己修改# 这里的可执行文件的名字是 ${PROJECT_NAME} 这个意思是项目的名字,就是project()括号里的内容#==============================================================================add_executable(${PROJECT_NAME} src/main.cpp)#==============================================================================# 链接外部库 这里由于没有外部库因此为空#==============================================================================target_link_libraries(${PROJECT_NAME})
CMake关键概念解释:
project(): 定义项目名称,生成的可执行文件将使用此名称include_directories(): 告诉编译器在哪里查找头文件add_executable(): 指定要编译的源文件和生成的可执行文件名target_link_libraries(): 链接需要的外部库
3.2 项目构建
# 进入项目目录cd ~/MyCppProject# 创建并进入构建目录mkdir -p build && cd build# 生成Makefilecmake ..# 编译项目make # 运行程序./MyCppProject
编译过程如下图:
 
执行命令,会显示输出结果:
 
构建过程说明:
cmake ..: 在build目录中生成Makefile,..表示CMakeLists.txt在上级目录make: 根据Makefile编译源代码
如此一个基于cmake的项目就搭建完成。
🚀 四、VS Code一键编译配置
这部分是为了让开发者更加方便而做的一键编译运行,方便在vscode中的调试:
4.1 配置tasks.json(适用于项目级别的)
在项目根目录创建.vscode/tasks.json,并将如下代码复制到里面并保存:
{\"version\": \"2.0.0\",\"tasks\": [{\"label\": \"cmake-build\",\"type\": \"shell\",\"command\": \"cmake\",\"args\": [\"--build\",\"build\"],\"problemMatcher\": [\"$gcc\"]},{\"label\": \"run-executable\",\"type\": \"shell\",\"command\": \"${workspaceFolder}/build/MyCppProject\",\"windows\": {\"command\": \"${workspaceFolder}\\\\build\\\\MyCppProject.exe\"}},{\"label\": \"build and run\",\"dependsOrder\": \"sequence\",\"dependsOn\": [\"cmake-build\",\"run-executable\"],\"group\": {\"kind\": \"build\",\"isDefault\": true}}]}
使用方法:
- 
在
main.cpp界面,按Ctrl+Shift+B,然后下面终端会自动编译并运行

 - 
注意,这个方法只能针对一个项目,用的时候要把里面的可执行文件换成
CMakelists.txt中生成的可执行文件,比如这次的可执行文件的名字是MyCppProject,可以在上面CMakelists.txt的注释中标注了可执行文件的名字。 
{\"label\": \"run-executable\",\"type\": \"shell\", #这里就是可执行文件的名字\"command\": \"${workspaceFolder}/build/MyCppProject\",\"windows\": { #这里也要根据可执行文件的名字修改\"command\": \"${workspaceFolder}\\\\build\\\\MyCppProject.exe\"}},
4.2 其他编译方案
方案1:Code Runner插件(适合单文件练习)
在vscode安装Code Runner插件:
 
- 
优点:右键选择
Run Code可运行,操作简单,不需要经过cmake

 - 
缺点:不支持交互式输入(如
std::cin),不适合复杂项目 
🎨 五、代码格式化配置
5.1 安装clang-format
在终端中运行:
sudo apt install clang-format
5.2 创建格式化配置文件
在项目根目录创建.clang-format:
 
将如下内容复制进去并保存:
BasedOnStyle: GoogleIndentWidth: 4AccessModifierOffset: -4 # 让private/protected/public关键字顶格ColumnLimit: 0 # 单行最大字符数,0为不限制
5.3 VS Code自动格式化配置
在.vscode/settings.json中添加并保存:
{ \"editor.formatOnSave\": true, \"editor.formatOnType\": true, \"editor.formatOnPaste\": true, \"[cpp]\": { \"editor.defaultFormatter\": \"xaver.clang-format\" }, \"[c]\": { \"editor.defaultFormatter\": \"xaver.clang-format\" }, \"clang-format.executable\": \"/usr/bin/clang-format\", \"clang-format.style\": \"file\"}
这样的话一般情况下输入 ;即可对齐格式:
 以这个为例,写一行不对齐的:
 
写入封号后立刻对齐:
 
也可以 ctrl+s全文对齐。
 
按ctrl+s:
格式化原理:
clang-format基于Clang编译器的AST分析,能够理解C++语法结构- 配置文件采用YAML格式,可以精确控制代码风格
 - VS Code通过Language Server Protocol与clang-format通信
 
🧠 六、IntelliSense智能提示配置
6.1 创建c_cpp_properties.json
在.vscode/c_cpp_properties.json中配置:
{ \"configurations\": [ { \"name\": \"Linux\", \"includePath\": [ \"${workspaceFolder}/include/**\", \"${workspaceFolder}/src/**\", \"/usr/include/**\", \"/usr/local/include/**\", \"/usr/include/c++/**\", \"/usr/include/x86_64-linux-gnu/c++/**\" ], \"defines\": [ \"_DEBUG\", \"UNICODE\", \"_UNICODE\" ], \"compilerPath\": \"/usr/bin/g++\", \"cStandard\": \"c17\", \"cppStandard\": \"c++17\", \"intelliSenseMode\": \"linux-gcc-x64\", \"compilerArgs\": [ \"-Wall\", \"-Wextra\", \"-Wpedantic\" ], \"browse\": { \"path\": [  \"${workspaceFolder}/include\",  \"${workspaceFolder}/src\",  \"/usr/include\",  \"/usr/local/include\" ], \"limitSymbolsToIncludedHeaders\": true, \"databaseFilename\": \"${workspaceFolder}/.vscode/browse.vc.db\" } } ], \"version\": 4}
配置说明:
includePath: IntelliSense搜索头文件的路径 主要是自己写的头文件,如果不配置好可能找不到compilerPath: 指定编译器路径,用于获取系统头文件信息intelliSenseMode: 告诉IntelliSense使用哪种编译器模式解析代码browse: 配置符号数据库,提供更好的代码导航体验
6.2 验证配置
配置完成后,你应该能够:
- 鼠标悬停查看函数/变量信息
 Ctrl+点击跳转到定义F12查看定义,Shift+F12查看所有引用- 自动补全函数名和变量名
 - 实时语法错误提示
 
🔧 七、常见问题解决
8.1 CMake版本问题
问题:cmake_minimum_required版本过高
# 查看当前CMake版本cmake --version# 如果版本过低,从官方源安装最新版wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /etc/apt/trusted.gpg.d/kitware.gpg >/dev/nullsudo apt-add-repository \'deb https://apt.kitware.com/ubuntu/ focal main\'sudo apt update && sudo apt install cmake
8.2 头文件找不到
问题:编译时提示找不到自定义头文件
- 检查
CMakeLists.txt中的include_directories()配置 - 确认头文件路径正确
 - 验证
c_cpp_properties.json中的includePath设置 
📚 八、总结与进阶
9.1 完整工作流程
- 项目初始化: 创建标准目录结构
 - 编写代码: 遵循头文件/源文件分离原则
 - 配置构建: 编写CMakeLists.txt
 - 设置编辑器: 配置VS Code各项功能
 - 编译调试: 使用一键编译和GDB调试
 - 代码格式化: 保持代码风格一致性
 
9.2 参考资源
- CMake官方文档
 - VS Code C++开发指南
 - clang-format配置选项
 - 现代CMake教程
 
本文配置适用于大部分C++项目开发需求,建议根据具体项目特点进行调整。如果在配置过程中遇到问题,欢迎在评论区讨论交流!


