我在 Ubuntu 14.04 中安装了 build-essential,并使用以下内容创建了一个测试文件 helloworld.c:
#include <stdio.h>
int main(void)
{ printf("Hello world\n"); return 0; }
的输出gcc -o hello helloworld.c
为:
/usr/lib/gcc/i686-linux-gnu/4.8/libgcc.a: file not recognized: File format not recognized
collect2: error: ld returned 1 exit status
对于我做错的事情有什么建议吗?
答案1
我找到了问题所在。有一个旧的、损坏的 gcc-4.8 安装,在安装 build-essential 时不会被替换。我使用了
sudo apt-get remove gcc-4.8
sudo apt-get remove --purge
sudo apt-get auto-remove
sudo apt-get install build-essential
现在测试运行正常。
答案2
我的看法:
具有该名称的文件/usr/lib/gcc/i686-linux-gnu/4.8/libgcc.a
是包的一部分libgcc-4.8-dev
所以
sudo apt-get install --reinstall libgcc-4.8-dev