Ubuntu 下 C++ 编译失败的原因非常多,不能一概而论。下面我按最常见原因 → 对应解决方法给你一个排查清单。如果你愿意,把具体的报错信息贴出来,我可以精准定位。
g++ main.cpp
报错类似:
Command 'g++' not found
✅ 解决:
sudo apt update
sudo apt install g++
检查版本:
g++ --version
g++ test.c
但你实际文件是 test.cpp
✅ 解决:
ls
g++ test.cpp
auto x = 10;
报错可能不是语法错,而是:
error: 'auto' does not name a type
✅ 解决:
g++ -std=c++11 main.cpp
或
g++ -std=c++17 main.cpp
#include <iostream.h> // ❌ 错误
✅ 正确写法:
#include <iostream>
using namespace std;
❌ 错误示例:
void main() {}
✅ 正确写法:
int main() {
return 0;
}
g++ main.cpp
但 main.cpp 调用了 func.cpp 的函数
✅ 解决:
g++ main.cpp func.cpp
或使用编译链接分开:
g++ -c func.cpp
g++ -c main.cpp
g++ main.o func.o
例如使用线程:
#include <thread>
✅ 编译时加:
g++ main.cpp -pthread
使用数学函数:
#include <cmath>
需加:
g++ main.cpp -lm
从 Windows 拷贝的代码可能报错。
✅ 解决:
sudo apt install dos2unix
dos2unix main.cpp
g++ -std=c++17 -Wall -Wextra -o app main.cpp
解释:
-std=c++17:使用 C++17-Wall -Wextra:显示所有常见警告-o app:生成可执行文件 app请直接贴出:
1️⃣ 你的 完整编译命令
2️⃣ 完整报错信息(别省略)
3️⃣ 一小段 源码(10~30 行即可)
我可以直接告诉你是哪一行、为什么、怎么改 ✅