在 Ubuntu 11.04 上,无法从 gcc-3.4 找到“-lgcc_s”

在 Ubuntu 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

答案1

显然,您需要添加库/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
$

答案2

对我来说命令:

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

答案3

我遇到了类似的问题,但我尝试在 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 正在编译。

相关内容