0

このチュートリアルを使用して、cython インターフェイスを C ライブラリにコンパイルしようとしています: Using C libraries with Cython but when I go it with:

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

適切な手段として、所有者を「ルート」に変更しようとしましたが、まだ何もありません。

ここで何が起こっているのですか?特に、リンカーが Code::Blocks から呼び出された場合 (補足的な C++ コードで作業している場合)、ライブラリをリンクできるためです。

前もって感謝します!

4

1 に答える 1

0

lib引数からその単語を削除するだけでよいと思うので、次-lのように変更します-lHorde3D

于 2012-07-31T05:18:09.023 に答える