build-essential仅含gcc、g++、make,缺gdb、cmake、ninja-build等必需组件;需sudo apt install build-essential cmake gdb ninja-build并验证三者版本。

build-essential 装了就能编译 C++,但只装它远远不够——缺调试器、缺项目管理、缺编辑器支持,写个 main.cpp 可能跑得通,加个 OpenCV 或断点调试立刻卡住。
装对工具链:别只敲 build-essential
很多人以为 sudo apt install build-essential 就万事大吉,其实它只打包了 gcc、g++、make,没带 gdb(调试必需)、cmake(现代项目标配)、ninja-build(更快的构建后端)。漏掉这些,后面配 VS Code 调试或跑 CMake 项目会直接失败。
- 一次性装全:
sudo apt install build-essential cmake gdb ninja-build - 验证是否真可用:
g++ --version、gdb --version、cmake --version三者都得有输出 -
build-essential在 Ubuntu 22.04+ 默认不带gdb,单独装不是可选,是必须
VS Code 配 C++ 不是装插件就完事
装完 C/C++ 和 CMake Tools 插件后,VS Code 默认不会自动识别你系统里的 g++ 或 OpenCV 头文件路径。IntelliSense 报红、跳转失效、#include 找不到,基本都出在这一步。
- 首次打开 C++ 项目时,按
Ctrl+Shift+P输入 “C/C++: Edit Configurations (UI)”,填入compilerPath,比如/usr/bin/g++ - 如果用了 OpenCV:
includePath加上/usr/include/opencv4(Ubuntu 22.04+ 默认路径) - 别依赖自动生成的
c_cpp_properties.json,手动检查compilerPath和intelliSenseMode(应为linux-gcc-x64)
CMakeLists.txt 里 find_package(OpenCV) 为啥总报错
错误信息通常是 Could NOT find OpenCV 或 OpenCV_DIR not set。这不是 CMake 问题,是 OpenCV 开发包根本没装,或者装了但 CMake 找不到配置文件。
- 先确认是否装了开发包:
dpkg -l | grep libopencv-dev,没输出就得装:sudo apt install libopencv-dev -
libopencv-dev安装后,CMake 配置文件在/usr/lib/x86_64-linux-gnu/cmake/opencv4/,不是opencv(注意末尾的4) -
CMakeLists.txt中必须写find_package(OpenCV 4 REQUIRED),不写版本号或写错成OpenCV3都会失败 - 如果用的是源码编译的 OpenCV,必须手动指定
-DOpenCV_DIR=/path/to/your/opencv/build
调试时 F5 按下去没反应?检查这三点
VS Code 的 C++ 调试依赖三个文件协同工作:launch.json、tasks.json、可执行文件本身。任一环节断掉,断点就进不去。
-
tasks.json必须用cmake或g++生成带调试信息的二进制:"args": ["-g", "-O0"]缺一不可 -
launch.json的program字段必须指向实际存在的可执行文件路径(如"./build/myapp"),不能是"${fileDirname}/build/${fileBasenameNoExtension}"这种靠猜的写法 - 确保当前工作区根目录下有
build/文件夹且已成功运行过cmake .. && make;空的build/目录会让launch.json找不到程序
libopencv-dev 对应 opencv4、gdb 不在 build-essential 里、launch.json 里 program 路径写错一个字符——这些细节不验证,环境就永远差一口气。C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











