【发布时间】:2013-12-28 09:53:06
【问题描述】:
我在制作时遇到了这个错误
gcc -o tests/simple_test tests/simple_test.o -L. libtraceback.a -Wall -Werror -gdwarf-2 -O0 -m32 -fno-stack-protector -fno-omit-frame-pointer -Itraceback/ -mpreferred-stack-boundary=2 -static
/usr/bin/ld: cannot find crt1.o: No such file or directory
/usr/bin/ld: cannot find crti.o: No such file or directory
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc_eh.a when searching for -lgcc_eh
/usr/bin/ld: cannot find -lgcc_eh
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
我读了一篇文章并尝试了
sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
但是没有用,有什么原因吗?
我使用运行 64 位 ubuntu 13.10 的 vmware 在 Surface Pro 2 上运行。
【问题讨论】:
-
看起来您的编译器配置错误。我会尝试重新安装它。
-
我试过 sudo apt-get install --reinstall gcc
-
重新安装后出现同样的错误
-
看起来您正在尝试构建一段 32 位代码,而它只查看 6 位库 -
-m32表明了这一点。猜测您缺少 32 位库。如果你真的想制作 32 位代码,那么你需要确保你已经安装了相关的 32 位库。上次我这样做所需的命令是apt-get install ia32-libs -
有道理,我是不是必须更改 Makefile 之类的?
标签: gcc compilation ld