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

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

一、系统准备

1.1 更新软件源

sudo apt update && sudo apt upgrade -y

二、安装开发工具链

2.1 基础编译环境

sudo apt install build-essential gdb

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

2.2 安装CMake

sudo apt install cmake

验证安装:

cmake --version  # 应显示3.16+版本

2.3 可选工具

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

三、配置Vim编辑器

3.1 基础配置(~/.vimrc)

set number
syntax on
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent

vim-example.png

3.2 扩展配置

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

输入:PlugInstall安装插件


四、创建C++项目

4.1 项目结构

my_project/
├── CMakeLists.txt
├── include/
│   └── utils.h
└── src/
    ├── main.cpp
    └── utils.cpp

4.2 示例代码

// main.cpp
#include "utils.h"

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

五、CMake构建系统

5.1 基础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 构建命令

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

六、调试与优化

6.1 GDB调试

gdb ./build/my_project
(gdb) break main
(gdb) run

6.2 性能分析

valgrind --leak-check=full ./build/my_project

七、高级配置(可选)

7.1 VSCode集成

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

7.2 跨平台构建

if(WIN32)
    add_definitions(-DWINDOWS)
elseif(UNIX)
    add_definitions(-DLINUX)
endif()

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

https://github.com/0voice

### Ubuntu 20.04 虚拟机上的 DPDK 运行环境设置指南Ubuntu 20.04 的虚拟机环境中安装和配置 DPDK 需要遵循一系列特定的操作流程。以下是详细的说明: #### 准备工作 确保虚拟机已正确安装并更新到最新状态。执行以下命令来升级系统软件包: ```bash sudo apt update && sudo apt upgrade -y ``` #### 安装依赖项 为了编译和运行 DPDK,需要先安装一些必要的开发工具和库文件: ```bash sudo apt install -y build-essential libnuma-dev git ``` #### 下载 DPDK 源码 可以从官方存储库获取最新的 DPDK 本。例如下载 v23.07 本: ```bash git clone http://dpdk.org/git/dpdk cd dpdk git checkout v23.07 ``` #### 编译 DPDK DPDK 支持通过 `meson` 和 `ninja` 工具链进行构建。如果尚未安装这些工具,则需先行安装: ```bash sudo apt install -y meson ninja-build ``` 随后按照如下方式完成编译过程: ```bash meson setup builddir --prefix=/usr --sysconfdir=/etc --localstatedir=/var -Dexamples=all meson compile -C builddir -j$(nproc) meson install -C builddir ``` #### 设置 Hugepages 由于 DPDK 使用 hugepages 来优化内存管理,在启动之前必须分配足够的 hugepage 数量。编辑 `/etc/default/grub` 文件并将参数加入内核引导选项中: ```plaintext GRUB_CMDLINE_LINUX="default_hugepagesz=1G hugepagesz=1G hugepages=8" ``` 之后重新生成 GRUB 配置以及重启机器使更改生效: ```bash sudo update-grub sudo reboot ``` 验证 hugepages 是否成功加载可以查看 /proc/meminfo 中的相关条目。 #### 绑定网卡至用户态驱动程序 对于实际物理设备而言,通常会将网络接口绑定给 VFIO 或 UIO 驱动以便于 DPDK 控制硬件资源;然而在 VM 场景下可能涉及模拟 NICs 如 virtio-net-pci 设备。这假设我们处理的是后者情况下的适配器初始化操作。 创建 udev 规则以自动加载 vfio-pci 并卸载原生驱动模块: ```bash echo 'ACTION=="add", SUBSYSTEM=="pci", KERNELS=="0000:xx:yy.z", ATTR{driver}!="?*", RUN+="/bin/sh -c '\''echo $kernel > /sys/bus/pci/drivers/vfio-pci/new_id'\''"' | sudo tee /etc/udev/rules.d/99-vfio.rules ``` 注意替换 xx:yy.z 为具体 PCI BDF 坐标位置前缀值[^2]。 最后一步就是确认目标端口已被切换成无内核模式并且能够被应用程序探测发现。 --- ### 示例代码片段展示如何调用 EAL 初始化函数 下面给出了一段简单的 C++ 实现例子用于演示基本框架结构: ```cpp #include <rte_eal.h> int main(int argc, char **argv){ int ret; const char *args[]={"appname","--no-shconf"}; /* Initialize the Environment Abstraction Layer (EAL). */ ret=rte_eal_init(ARRAY_SIZE(args),const_cast<char**>(args)); if(ret<0){ rte_exit(EXIT_FAILURE,"Error during EAL initialization\n"); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值