Ubuntu

在 Ubuntu 11.04 上從 gcc-3.4 中找不到“-lgcc_s”

  • February 21, 2019

我正在嘗試gcc-3.4在最新的 Ubuntu 上使用。該軟體包來自 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
$

引用自:https://serverfault.com/questions/266138