在 Ubuntu 上进行 C++ 开发/配置,通常关注编译器、构建系统、依赖管理、调试工具、标准与兼容性问题。下面按“新手→进阶”给你一个实用清单。
Ubuntu 默认可能没有 g++:
sudo apt update
sudo apt install build-essential
包含:
gcc / g++make查看版本:
g++ --version
Ubuntu 旧版本 g++ 默认可能不是 C++17:
g++ main.cpp -std=c++17 -o app
常见标准:
-std=c++11-std=c++14-std=c++17-std=c++20g++ main.cpp -std=c++17 -O2 -Wall -Wextra -o app
含义:
-Wall -Wextra:开警告(很重要)-O2:优化-g:生成调试信息(调试时必须)调试版本:
g++ main.cpp -g -std=c++17 -o app
示例 Makefile:
CXX = g++
CXXFLAGS = -std=c++17 -Wall -Wextra -O2
app: main.cpp
$(CXX) main.cpp -o app
clean:
rm -f app
安装:
sudo apt install cmake
最小 CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(demo)
set(CMAKE_CXX_STANDARD 17)
add_executable(app main.cpp)
构建:
mkdir build && cd build
cmake ..
make
例如使用 OpenSSL:
sudo apt install libssl-dev
编译:
g++ main.cpp -lssl -lcrypto
-I/path/include-L/path/lib-lxxx示例:
g++ main.cpp -I/opt/mylib/include -L/opt/mylib/lib -lmylib
sudo apt install gdb
gdb ./app
常用:
run
break main
next
print x
sudo apt install valgrind
valgrind ./app
sudo apt install clang
clang --analyze main.cpp
查看 glibc:
ldd --version
报错:
error while loading shared libraries
解决:
export LD_LIBRARY_PATH=/your/lib/path:$LD_LIBRARY_PATH
或写入 /etc/ld.so.conf.d/
查看:
uname -m
x86_64aarch64(ARM)交叉编译需额外工具链。
✅ 一定要指定 -std=c++xx
✅ 开 -Wall -Wextra
✅ 调试一定加 -g
✅ 不要把 .o 和源码混在一起(用 build/)
✅ apt 装的 -dev 包才是开发用
✅ 动态库运行时路径要配置
如果你愿意,可以告诉我:
我可以直接给你一套可复制的配置模板。