كيف يجد مجلس التعاون الخليجي على سولاريس مكتباته؟
سؤال
أحاول تثبيت "quadrupel"، وهي مكتبة تعتمد على ffmpeg على Solaris x86.
تمكنت من إنشاء ffmpeg ومكتباته موجودة في /opt/gnu/lib والتضمينات موجودة في /opt/gnu/include ولكن عندما أحاول إنشاء رباعي، لا يمكنه العثور على رؤوس ffmpeg.
ما هي العلامات/التكوين المطلوب لتضمين هذين الدليلين في مسارات البحث المناسبة للمكتبات والمتضمنات؟أنا لست من هاكر Makefile.
المحلول
يمكنك تجاوز المسار عن طريق تعيين المتغير البيئي LD_LIBRARY_PATH.ومع ذلك، أود أن أقترح تغيير مسارات النظام أيضًا حتى لا تضطر إلى تغيير مسار المكتبة لجميع المستخدمين.ويمكن القيام بذلك باستخدام كريل.
crle -l -c /var/ld/ld.config -l /usr/lib:/usr/local/lib:/opt/gnu/lib
للتضمين فقط أضف -I/opt/gnu/include إلى متغير CFLAGS الخاص بك.
نصائح أخرى
أعتقد أنك بحاجة إلى إضافة ما يلي إلى Makefile:
CFLAGS += -I/opt/gnu/include
LDFLAGS += -L/opt/gnu/lib -R/opt/gnu/lib
تخبر الوسيطة -I مجلس التعاون الخليجي بمكان العثور على ملفات التضمين.تخبر العلامة -L ld بمكان العثور على المكتبات أثناء الارتباط.تكتب العلامة -R /opt/gnu/lib في مسار بحث المكتبة في الملف الثنائي الرباعي، حتى تتمكن من العثور على مكتباتها عند البدء.