setup.py ld找不到存在的库,配置了路径

时间:2012-07-26 01:00:35

标签: gcc shared-libraries ld cython archlinux

我正在尝试使用本教程编译一个C语言库的Cthon接口:Using C libraries with Cython但是当我使用它时:

python2 setup.py build_ext -i

链接器无法找到库(库名称为libHorde3D

gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu build/temp.linux-x86_64-2.7/horde3d.o -L/usr/lib -llibHorde3D -lpython2.7 -o /home/kiril/workspace/horde3d_python/cython/horde3d.so
/usr/bin/ld: cannot find -llibHorde3D

由于libHorde3D.so存在于我的/ usr / lib和/ opt / lib中,因此链接的搜索路径在/etc/ld.conf中配置以查看这些目录并且我尝试过,这非常奇特使用以下变量设置搜索路径: LD_LIBRARY_PATH,LIBRARY_PATH,LDFLAGS,以及直接传递:

python2 setup.py build_ext -i -L/opt/lib

我做了ldconfig -v并列出了库:

/usr/lib:
    libHorde3D.so -> libHorde3D.so
/opt/lib:
    libHorde3D.so -> libHorde3D.so

为了好的衡量,我试图将所有者更改为“root”,仍然没有。

这里发生了什么?特别是因为如果从Code :: Blocks调用链接器(在处理一些补充C ++代码时),我能够链接库。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我认为您只需要从lib参数中删除-l一词,因此请将其更改为-lHorde3D