يتعذر على setup.py ld العثور على المكتبة الموجودة، حيث تم تكوين المسارات

StackOverflow https://stackoverflow.com//questions/11660928

سؤال

أحاول تجميع واجهة cython إلى مكتبة C باستخدام هذا البرنامج التعليمي: استخدام مكتبات C مع 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

لحسن التدبير حاولت تغيير المالك إلى "الجذر"، ولكن لا شيء.

ما الذي يجري هنا؟خاصة وأنني قادر على ربط المكتبة إذا تم استدعاء الرابط من Code::Blocks(عند العمل على بعض أكواد C++ التكميلية).

شكرا لك مقدما!

هل كانت مفيدة؟

المحلول

أعتقد أنك تحتاج فقط إلى إزالة الكلمة lib منك -l حجة، لذلك تغييره إلى -lHorde3D

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top