Ubuntu 20.04 C++开发环境搭建指南(2025版)

系统准备 安装工具链 配置编辑器 创建C++项目 构建与调试 高级配置


一、系统准备

1.1 更新软件源

bash 复制代码
sudo apt update && sudo apt upgrade -y

二、安装开发工具链

2.1 基础编译环境

bash 复制代码
sudo apt install build-essential gdb

包含GCC/G++/Make等核心工具

2.2 安装CMake

bash 复制代码
sudo apt install cmake

验证安装:

bash 复制代码
cmake --version  # 应显示3.16+版本

2.3 可选工具

bash 复制代码
sudo apt install git clang-format  # 版本控制和代码格式化

三、配置Vim编辑器

3.1 基础配置(~/.vimrc)

vim 复制代码
set number
syntax on
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent

vim-example.png

3.2 扩展配置

vim 复制代码
" 启用文件树插件
call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree'
call plug#end()

输入:PlugInstall安装插件


四、创建C++项目

4.1 项目结构

markdown 复制代码
my_project/
├── CMakeLists.txt
├── include/
│   └── utils.h
└── src/
    ├── main.cpp
    └── utils.cpp

4.2 示例代码

cpp 复制代码
// main.cpp
#include "utils.h"

int main() {
    print_hello();
    return 0;
}

五、CMake构建系统

5.1 基础CMake配置

cmake 复制代码
cmake_minimum_required(VERSION 3.10)
project(MyProject)

set(CMAKE_CXX_STANDARD 17)

add_executable(my_project 
    src/main.cpp 
    src/utils.cpp
)

target_include_directories(my_project
    PRIVATE ${PROJECT_SOURCE_DIR}/include
)

cmake-flow.png

5.2 构建命令

bash 复制代码
mkdir build && cd build
cmake ..
make -j4  # 使用4核并行编译
./my_project

六、调试与优化

6.1 GDB调试

bash 复制代码
gdb ./build/my_project
(gdb) break main
(gdb) run

6.2 性能分析

bash 复制代码
valgrind --leak-check=full ./build/my_project

七、高级配置(可选)

7.1 VSCode集成

  1. 安装C/C++扩展
  2. 配置.vscode/tasks.json
json 复制代码
{
    "version": "2.0.0",
    "tasks": [{
        "label": "build",
        "type": "shell",
        "command": "cmake --build build"
    }]
}

7.2 跨平台构建

cmake 复制代码
if(WIN32)
    add_definitions(-DWINDOWS)
elseif(UNIX)
    add_definitions(-DLINUX)
endif()

Project +CMakeLists.txt +include/ +src/ +build/ CMake +configure() +build() Compiler +g++ +clang++

相关推荐
H Journey9 小时前
Linux su 命令核心用法总结
java·linux·服务器·su
你好!蒋韦杰-(烟雨平生)9 小时前
OpenGL
c++·数学·游戏·3d
郁闷的网纹蟒9 小时前
虚幻5---第12部分---蒙太奇
开发语言·c++·ue5·游戏引擎·虚幻
PPPPPaPeR.9 小时前
环 境 变 量
linux·运维·windows
HalvmånEver9 小时前
Linux:线程创建与终止上(线程五)
java·linux·jvm
嵌入小生0079 小时前
双向链表、双向循环链表之间的异同---嵌入式入门---Linux
linux·c语言·数据结构·链表·嵌入式·小白
H Journey9 小时前
Linux sudo 命令完全指南
linux·运维·服务器·sudo
开开心心_Every9 小时前
家常菜谱软件推荐:分类齐全无广告步骤详细
linux·运维·服务器·华为od·edge·pdf·华为云
i建模9 小时前
在 Arch Linux 中安装 **Xorg 服务器**
linux·运维·服务器
liyuanchao_blog10 小时前
linuxptp适配记录
linux·云计算