2

私はOpenSuse11.1x64ボックスに座っており、sigc++を使用するモジュールがあります。このようにリンクする場合:

g++ [a lot of o's, L's and l's] -lsigc-2.0

私は得る

/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lsigc-2.0

しかし、図書館はそこにあります。
ファイルシステム内:

$ sudo find / -name "libsigc-2.0*"
/usr/lib64/libsigc-2.0.so.0.0.0
/usr/lib64/libsigc-2.0.so.0
/usr/lib64/libsigc-2.0.so

ld.so.confに私は持っています:

/usr/lib64

そして、ldconfigを呼び出すとき:

$ ldconfig -v | grep sigc
libsigc-2.0.so.0 -> libsigc-2.0.so.0.0.0

なんで?

4

2 に答える 2

2

私はとても愚かです。これは古いコードベースで、-lsigc-2.0 ステートメントの直前に

-Wl,-Bstatic

明らかに、libsigc 用の静的ライブラリは (もう) ありません。

于 2009-10-16T09:10:58.827 に答える
0

libsigc-2.0.so が以外のSONAMElibsigc-2.0にリンクされている可能性があります。

objdump -p /usr/lib64/libsigc-2.0.so | SONAME を grep

など、予期しないものが表示された場合はlibsigc、その名前で追加のシンボリック リンクを作成する必要がある場合があります。

于 2009-10-14T17:45:40.773 に答える