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++

相关推荐
by209997 小时前
Linux 基础指令与文件操作
linux·1024程序员节
会编程的小孩7 小时前
C++ qt的安装
c++
Escalating_xu8 小时前
【Linux 网络编程】手写序列化与反序列化:从 x op y 到能校验的文本协议
linux·运维·网络
todoitbo9 小时前
在 Ubuntu ARM64 上运行 Q1 V3.0 MuJoCo 模型:加载、步进和单执行器响应
linux·运维·ubuntu·ai·机器人·仿真教程·启元
AR-26710-10 小时前
Linux Day26——传输层与三次握手
linux·运维
隔窗听雨眠11 小时前
PostgreSQL单表从Windows迁移到Linux:差异剖析、方案对比与全流程实战
linux·windows·postgresql
xinruoqianqiu11 小时前
记录Linux
linux
额额额对了11 小时前
嵌入式 Linux 实战:i.MX6ULL 上的 CAN 通信与摄像头采集
linux·运维·服务器
牛马鸡niumasi11 小时前
【Linux】进程替换
linux
灯澜忆梦12 小时前
【Linux】#10 | Linux 终端实用快捷键 + 安装应用
linux·运维·服务器