在 Debian 上遇到 gcc 报错,先不要慌,一般可以按下面步骤来排查和解决。
gcc --version
如果提示:
Command 'gcc' not found
说明 gcc 没装,安装即可:
sudo apt update
sudo apt install build-essential
build-essential 包含:
fatal error: xxx.h: No such file or directory原因:缺少头文件或开发库
解决:
sudo apt install xxx-dev
例如:
sudo apt install libssl-dev
undefined reference to 'xxx'原因:链接时没加库
解决:
gcc main.c -o main -lm
常见库:
-lm 数学库-lpthread 线程-lssl -lcrypto OpenSSLcollect2: error: ld returned 1 exit status原因:链接失败(一般是上面的 undefined reference)
解决:
error: expected ‘;’ before ‘}’原因:C 语法错误
解决:
Segmentation fault (core dumped)原因:运行时错误,不是 gcc 本身
调试:
gcc -g main.c -o main
gdb ./main
很多人只贴最后一行,其实要看 第一行报错:
gcc main.c 2>&1 | head -n 20
查看系统版本:
cat /etc/debian_version
查看 gcc 版本:
gcc -v
如果你需要指定版本:
sudo apt install gcc-11 g++-11
请把以下信息发出来:
如果你愿意,可以直接把 gcc 报错内容贴出来,我可以帮你逐行分析并给出具体解决方法。