在 Ubuntu 下 C++ 报错 的原因很多,一般可以按 编译阶段 / 链接阶段 / 运行阶段 来定位。下面给你一套通用排查思路 + 常见错误及解决方法,基本能覆盖 90% 的情况。
sudo apt update
sudo apt install build-essential gdb
检查:
g++ --version
error: ‘cout’ was not declared in this scope
std#include <iostream>
int main() {
std::cout << "Hello" << std::endl;
}
或:
using namespace std;
expected ‘;’ before ‘return’
✅ 解决:
;} 或 {g++ main.cpp
./a.out
有时没问题,但推荐:
g++ main.cpp -o main
./main
undefined reference to `sqrt`
✅ 解决:
g++ main.cpp -o main -lm
undefined reference to `func()'
✅ 正确做法:
g++ main.cpp func.cpp -o main
或:
g++ *.cpp -o main
fatal error: mylib.h: No such file or directory
✅ 解决:
g++ main.cpp -I./include
常见原因:
delete 重复释放✅ 调试方法:
g++ main.cpp -g
gdb ./main
在 gdb 中:
run
bt
‘auto’ not allowed in C++98
✅ 指定标准:
g++ main.cpp -std=c++11
或:
-std=c++17
看报错 → 定位是编译 / 链接 / 运行
↓
搜索报错关键词
↓
检查:头文件、拼写、链接、路径
↓
加 -g 用 gdb 调试
你可以直接把 以下内容发给我:
1️⃣ 完整报错信息(复制粘贴)
2️⃣ 源代码(关键部分即可)
3️⃣ 编译命令
4️⃣ Ubuntu 版本(如 20.04 / 22.04)
我可以 逐行帮你分析并给出修改方案 ✅