我坐在OpenSuse 11.1 x64 Box上,我有一个使用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
为什么?
答案 0 :(得分:1)
我太笨了。这是一个旧代码库,就在-lsigc-2.0语句之前我有一个
-Wl,-Bstatic
显然,libsigc(不再)没有静态库。
答案 1 :(得分:0)
libsigc-2.0.so可能与libsigc-2.0
以外的SONAME相关联。
objdump -p /usr/lib64/libsigc-2.0.so | grep SONAME
如果您发现意外情况,例如: libsigc
,您可能需要创建一个具有该名称的附加符号链接。