غير قادر على ربط مكتبة FreeType 2 باستخدام MingW؛ld.exe: لا يمكن العثور على -lfreetype

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

سؤال

أنا أروي مع mingw في نظام التشغيل Windows 7، باستخدام الكود :: كتل ك IDE. كل شيء يجب أن يكون حتى الآن. لقد لاحظت أن هناك عددا من الأسئلة المماثلة، ولكن بدا أن تلك موجودة في ربط مكتبة ديناميكية، وليس تجميع المكتبة الثابتة.

أحاول استخدام FTGL لتكون قادرا على استخدام النص في OpenGL. يتطلب FTGL تثبيت FreeType 2. قمت بتنزيل مصدر FreeType، وتبعت إرشادات Install.gnu لإنشاء مكتبة ثابتة من cmd.exe، باستخدام MingW32-make.exe.

كما أشارت التعليمات، ركض MingW32 - من الدليل الأساسي لتثبيت FreeType. كان إخراج وحدة التحكم كما هو متوقع:

giveacodicetagpre.

يرى ككل من النظام الأساسي والمترجم صحيحة، ركضت أمر "إجراء" مرة أخرى:

giveacodicetagpre.

أنتجت هذا الملف freetype.a في الدليل D: \ freeType-2.4.4 \ OBJS.

ثم قمت بالخطوات الموجودة في التعليمات البرمجية :: كتل لربط المكتبة بالمشروع، وأضاف عينة بت التعليمات البرمجية لاختبار FTGL وحاول بناءها.

أحصل على خطأين، اعتمادا على كيفية محاولة القيام بالأشياء.

إذا قمت بتوفير الدليل الصحيح إلى Linker (-LLD: \ FreeType-2.4.4 \ OBJS)، ورابط مع -LFreeType، كل شيء على ما يرام حتى يتم إنهاء LD.EXE مع الخطأ في العنوان، لا يمكن العثور عليه - lfreetype.

إذا لم أقدم الدليل الصحيح، أحصل على نفس الخطأ. لا يمكن العثور على المكتبة.

إذا قمت بتغيير اسم الملف، FreeType.a، Libfreetype.a، وتقديم الدليل الصحيح، وبدلا من ذلك أحصل على العديد من المراجع غير المحددة.

giveacodicetagpre.

إذا قمت بتوفير الدليل الخطأ، فسوف أحصل على الخطأ السابق الذي لم يتمكن من العثور على المكتبة.

وجدت أنه من الغريب أن تجعل عملية الاتجاهات، عند اتباع الإرشادات في ملف التثبيت، بإنتاج مكتبة باسم لم يبدأ مع Lib. راجعت وبدأ كل ملف آخر .A مع lib-. ويبدو أن الرابط يبحث عن ملف libfreetype.a. فلماذا جعل إنشاء FreeType.a بدلا من ذلك؟ يستخدم هذا التحويل البرمجي نفسه للمكتبة التي أستخدمها لتجميع البرنامج.

على أي حال، غير متأكد من أين تذهب من هنا. فكرت في استخدام شاشة MSISS التي هي جزء من حزمة MINGW، لكن ليس لدي الكثير من الخبرة معها وتعليمات في Install.unix افترض أنك تعرف أن الأوامر الأكثر وضوحا. ذكروا باستخدام ./configure [خيارات]، دون ذكر الخيارات التي قد تكون مستحقة. ربما من الواضح لشخص ما بمعرفة النظام، لكن MSYS هي تجربتي الأولى مع SH.

كنت أقدر أي مساعدة في هذه المسألة.

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

المحلول

الإصدار الخاص بي من libfreetype.a (2.4.4، تم تصميمها من حزمة دبيان المعدلة) لا تصدر الرموز التي يبحث عن رابطك عن (ftpixmapfont منشئ)، ولا يعلن الرؤوس مثل هذه الفئة.يشير البحث السريع Google إلى أنهم ينتمون إلى FTGL.

إعادة تسمية ملف الاستيراد الخاص بك إلى libfreetype.a كان صحيحا (لن يجدها MINGW LD ذلك بشكل خلاف ذلك)، ولكن هل وصلت أيضا إلى مكتبات FTGL الضرورية؟

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