温馨提示×

ubuntu gcc怎么查错误

小樊
44
2026-10-27 14:05:27
栏目: 智能运维

在 Ubuntu 下使用 gcc 编译 C/C++ 程序时,查错误主要分几个层次:编译错误、链接错误、运行时错误、逻辑错误。下面系统地给你讲一下常见方法和技巧。


一、查看 gcc 编译错误(最基础)

1. 正常编译并看错误信息

gcc test.c -o test

如果有错误,gcc 会直接输出,例如:

test.c:5:10: error: expected ‘;’ before ‘}’ token

重点看:

  • 文件名:行号:列号
  • error: 是必须改的
  • warning: 也要注意(可能是隐患)

2. 打开更多警告(强烈推荐)

gcc -Wall -Wextra test.c -o test

常用选项:

  • -Wall:常见警告
  • -Wextra:额外警告
  • -Werror:把警告当错误(适合学习/严格项目)

二、查头文件 / 函数未定义错误

常见错误

undefined reference to `sqrt'

原因:没链接库

解决:

gcc test.c -o test -lm

数学库 -lm
线程库 -lpthread


三、使用 -g 配合 gdb 查运行错误

1. 编译时加调试信息

gcc -g test.c -o test

2. 用 gdb 运行

gdb ./test

常用 gdb 命令:

run
bt         # 查看调用栈(崩溃时最重要)
list       # 查看代码
print x    # 打印变量
quit

四、段错误(Segmentation fault)怎么查

方法 1:gdb

gdb ./test
run
bt

方法 2:core dump

ulimit -c unlimited
./test
gdb ./test core

五、内存错误(非常推荐 valgrind)

sudo apt install valgrind
valgrind ./test

可以查:

  • 内存泄漏
  • 非法访问
  • 未初始化变量

六、C++ 额外注意

如果是 C++:

g++ test.cpp -Wall -Wextra -g -o test

七、常见错误速查表

错误 原因
undefined reference 没加库
command not found 没装 gcc
No such file 路径错
Segmentation fault 指针/数组越界
warning: unused variable 定义了没用

如果你愿意,可以把 具体的 gcc 报错信息贴出来,我可以直接帮你逐行分析。

0 踩