在 Debian 下用 C++ 编译出现错误时,通常可以按下面步骤系统性排查和解决。
编译错误一般分几类:
g++ --version
如果没有:
sudo apt update
sudo apt install build-essential
build-essential 包含:
错误示例:
fatal error: iostream: No such file or directory
✅ 解决:
sudo apt install g++ # 或 build-essential
如果是第三方库(如 OpenCV、Boost):
sudo apt install libopencv-dev libboost-all-dev
错误示例:
undefined reference to `pthread_create'
✅ 解决:加链接库
g++ main.cpp -lpthread
常见库:
-lpthread-lm-lstdc++(一般不用)-lsqlite3错误示例:
error: ‘auto’ not allowed in C++98
✅ 指定 C++ 标准:
g++ main.cpp -std=c++11
g++ main.cpp -std=c++17
推荐:
g++ -std=c++17 main.cpp
错误示例:
undefined reference to `func()'
✅ 正确方式:
g++ main.cpp func.cpp -o app
或用 Makefile。
错误:
Permission denied
✅ 解决:
chmod +x a.out
./a.out
或换目录:
cd ~
g++ main.cpp -Wall -Wextra
-Wall:常见警告-Wextra:额外警告sudo apt update
sudo apt install build-essential
g++ -std=c++17 main.cpp -o main
./main
你可以把完整报错信息和编译命令贴出来,例如:
g++ main.cpp
main.cpp:5:10: fatal error: xxx.h: No such file or directory
我可以一步一步帮你定位原因。