在 Ubuntu 下用 gcc/g++ 编译时,查看和理解错误信息主要有以下几种方式和技巧:
编译时 gcc 会把错误/警告直接打印到终端,例如:
gcc main.c -o main
常见格式:
main.c: In function ‘main’:
main.c:5:10: error: ‘x’ undeclared (first use in this function)
5 | int y = x + 1;
| ^
解释:
main.c:文件名5:10:第 5 行第 10 列error:错误(warning 是警告)gcc -Wall main.c -o main
-Wall:打开常用警告更严格:
gcc -Wall -Wextra main.c -o main
gcc -fshow-column main.c
(默认一般已开启)
export LC_ALL=zh_CN.UTF-8
gcc main.c
⚠️ 有时翻译不完全,英文更准确
gcc main.c 2> error.txt
然后查看:
cat error.txt
或同时看屏幕和文件:
gcc main.c 2>&1 | tee error.txt
| 类型 | 含义 |
|---|---|
error: expected ‘;’ |
少分号 |
undefined reference |
链接错误(函数没实现或没加源文件) |
segmentation fault |
运行时错误(不是编译错误) |
warning: unused variable |
变量没用 |
make + makefileCFLAGS = -Wall -Wextra
sudo apt install clang
clang main.c
90% 的问题,只要修好第一个 error,后面很多错误会消失
如果你愿意,可以把 具体的 gcc 错误信息贴出来,我可以逐行帮你翻译和定位问题。