2

Ubuntu 12.10 で、コンパイラに対して有効なフラグとリンカーに対して有効なフラグを使用しgccてコンパイルする際に問題に直面しています。ただし、アプリケーションは動的リンクで (これらのフラグを使用せずに) 正常にビルドされます。-static-static-libgcc-Wl,-static

/usr/bin/ld: cannot find -lgcc_s

インターネットで提案を調べたところ、ほとんどの場合、 から/usr/lib/gcc/i686-linux-gnu/x.x/libgcc_s.soへのリンクが壊れていることが問題であることがわかりました/lib/libgcc_s.so.1。しかし、私の場合、どれが存在するかを/usr/lib/gcc/i686-linux-gnu/4.7/libgcc_s.so指して/lib/i386-linux-gnu/libgcc_s.so.1います。

$ ls -l /usr/lib/gcc/i686-linux-gnu/4.7/libgcc_s.so
lrwxrwxrwx 1 root root 33 Sep 21  2012 /usr/lib/gcc/i686-linux-gnu/4.7/libgcc_s.so -> /lib/i386-linux-gnu/libgcc_s.so.1
$ ls -l /lib/i386-linux-gnu/libgcc_s.so.1
-rw-r--r-- 1 root root 116244 Sep 21  2012 /lib/i386-linux-gnu/libgcc_s.so.1
$ file /lib/i386-linux-gnu/libgcc_s.so.1
/lib/i386-linux-gnu/libgcc_s.so.1: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x61fa08eda0f264222649f9481f9e0340567d0862, stripped

の出力はldconfig次のようになります。

$ sudo /sbin/ldconfig -v | grep libgcc_s
/sbin/ldconfig.real: Can't stat /lib/i686-linux-gnu: No such file or directory
/sbin/ldconfig.real: Can't stat /usr/lib/i686-linux-gnu: No such file or directory
/sbin/ldconfig.real: Path `/lib/i386-linux-gnu' given more than once
/sbin/ldconfig.real: Path `/usr/lib/i386-linux-gnu' given more than once
    libgcc_s.so.1 -> libgcc_s.so.1
/sbin/ldconfig.real: Cannot stat /usr/lib/i386-linux-gnu/libsoftokn3.so: No such file or directory
/sbin/ldconfig.real: Cannot stat /usr/lib/i386-linux-gnu/libnss_db.so: No such file or directory

静的リンクでこの問題を解決できる人はいますか? また、さらに詳細が必要な場合はお知らせください。ありがとう。

4

1 に答える 1

5

おそらく、リンカーはlibgcc_s.aの静的バージョンである を見つけることができませんlibgcc_s.so

-Wl,--verbose=99リンカーに渡してみて、何が表示されるかを確認してください。

少し前に同様の問題がありました。リンカーオプションを使用すると、答えが得られました:

...
attempt to open /long_path/usr/lib/libgcc_s.so failed
attempt to open /long_path/usr/lib/libgcc_s.a failed
attempt to open /long_path/lib/libgcc_s.a failed
attempt to open /long_path/lib/libgcc_s.so succeeded
...

私の知る限り、.soは「共有オブジェクト」の略です。.aはアーカイブ (コンパイルされたオブジェクトのコレクション)だと思います。

于 2013-08-28T15:07:27.810 に答える