0

我正在尝试使用本教程将 cython 接口编译到 C 库: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++ 代码时),我能够链接库。

提前致谢!

4

1 回答 1

0

我认为你只需lib要从你的-l论点中删除这个词,所以把它改成-lHorde3D

于 2012-07-31T05:18:09.023 回答