在unbuntu 11.04上找不到“gcc-3.4”的“-lgcc_s”`

我正在尝试在最新的Ubuntu上使用gcc-3.4 。 该软件包来自debian快照。

它可能会假设不同的默认目录结构,所以例如我被迫给它-I /usr/include/i386-linux-gnu/gcc-4隐含地假设它。

目前它编译我给它的一切都很好,但它不能链接。 即使最简单的可执行文件也会导致错误:

 $ gcc-3.4 ~/tmp.cc -o ~/tmp /usr/bin/ld: cannot find -lgcc_s collect2: ld returned 1 exit status 

显然你需要添加库/lib/i386-linux-gnu/libgcc_s.so.1 ,编译器期望软链接/usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so指向它到正确的地方,但是:

 $ ls -l /usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so lrwxrwxrwx 1 root root 18 2011-05-03 04:55 /usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so -> /lib/libgcc_s.so.1 

 $ ls /lib/libgcc_s.so.1 ls: /lib/libgcc_s.so.1: No such file or directory 

修复符号链接,一切都会好的

 $ sudo ln /lib/i386-linux-gnu/libgcc_s.so.1 /usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so 

现在它工作正常!

 $ g++-3.4 ~/tmp.cc -o ~/tmp $ 

对我来说命令是:

 sudo ln /lib/i386-linux-gnu/libgcc_s.so.1 /usr/lib/gcc/i486-linux-gnu/3.4.6/libgcc_s.so 

不解决问题。

这个命令反而解决了这个问题:

 sudo cp /lib/i386-linux-gnu/libgcc_s.so.1 /lib/libgcc_s.so.1 

我有一个类似的问题,但在我的情况下,试图在Ubuntu 11.04中安装gcc 4.2(在Matlab Simulink中编译)

在我的情况下,我写道:

 sudo ln /lib/x86_64-linux-gnu/libgcc_s.so.1 /usr/lib/gcc/x86_64-linux-gnu/4.2.3/libgcc_s.so 

现在gcc-4.2正在编译。