سؤال

يمكنني استخدام الكود :: كتل لتجميع مكتبة ثابتة. نتيجة الإخراج هي ملف libstatic.a. الآن، كيف يمكنني ربط مكتبتي لاستخدام الوظائف التي تم تجميعها؟

(حاولت استخدام #include "libstatic.a" ولكن مشروعي لا يترجم)

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

المحلول

cc -o yourprog yourprog.c -lstatic

أو

cc -o yourprog yourprog.c libstatic.a

نصائح أخرى

يجب #include "libstatic.h", ، أي استخدام ملف الرأس المناسب في التعليمات البرمجية الخاصة بك (هذا لماذا لا يتجمع الكود الخاص بك) ويشمل المسار الخاص بك libstatic.a في خيارات الرابط كأحد مكتبات الإدخال الخاصة بك.

هذه صفحة ويب لديه بعض الأمثلة على الارتباط بمكتبة ثابتة، على سبيل المثال

gcc -I. -o jvct jvct.c libjvc.a

اضطررت إلى ضبط مسار المكتبة في My Makefile. بالنسبة لهذه الحالة، يمكنك استخدامها:

gcc -o myapp main.c -L. -lstatic
gcc -I. -o jvct jvct.c libjvc.a

لربط بحتة ثابتة، واستخدام -static

cc -static yourprogram.c libstatic.a
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top