在 Ubuntu 上写 C++ 程序时遇到报错,解决思路一般分为 看清楚错误类型 → 定位原因 → 对应处理。下面我按常见场景给你一个“排错指南”。
例如:
error: ‘cout’ was not declared in this scope
✅ 原因:语法 / 头文件 / 命名空间问题
例如:
undefined reference to `func()'
✅ 原因:没链接库 / 没编译源文件
例如:
Segmentation fault (core dumped)
✅ 原因:指针 / 数组越界 / 未初始化
sudo apt update
sudo apt install g++ build-essential
#include <iostream>
using namespace std;
g++ main.cpp -o main
./main
多个文件:
g++ main.cpp func.cpp -o main
❌ 错误
g++ main.cpp
✅ 正确
g++ main.cpp utils.cpp -o main
例如用 pthread:
g++ main.cpp -pthread
用数学库:
g++ main.cpp -lm
常见原因:
调试方法:
g++ -g main.cpp -o main
gdb ./main
在 gdb 中:
run
bt
编译时加:
g++ -Wall -Wextra main.cpp
你可以把 完整报错信息 + 代码(或关键部分) 发给我,例如:
ubuntu 22.04
g++ 11
报错:
error: ...
代码:
...
我可以直接告诉你 是哪一行、为什么错、怎么改 ✅