ما هي الطريقة العادية للتعامل مع مواقع المكتبة غير القياسية في برنامج نصي Autoconf؟

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

سؤال

أحاول استخدام Toolchain GNU Autoconf / Automake لأول مرة، وبالتالي فإن الإجابة على سؤالي قد تكون تافهة.

يحتاج البرنامج إلى OpenGL / Full حيث يتم تثبيت الرؤوس والمكتبات في موقع غير قياسي. وجدت هؤلاء وحدات ماكرو التي يجب أن تفعل كل فحص لي. أنا ببساطة استدعاء ذلك مع AX_CHECK_GLUT.. وبعد كيف يمكنني جعل الماكرو العثور على المكتبات؟ أنا أبحث عن شيء مثل

./configure - with-full-dir = / home / hanno / full

أكثر عموما: ما هي الطريقة العادية للتعامل مع مواقع المكتبة غير القياسية في برنامج نصي Autoconf؟ بالطبع، يمكنني اللعب حول متغيرات CPPFLags و Libs، لكن لدي شعور بأنني أفتقد شيئا ما.

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

المحلول

الطريقة التي تم تصميمها autoTools، لا يتعين على مؤلف الحزمة أن يفعل أي شيء لدعم المتطلبات الأساسية المثبتة في المواقع غير القياسية. إخراج ./configure --help يتضمن الأسطر التالية:

LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
            nonstandard directory <lib dir>
CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
            you have headers in a nonstandard directory <include dir>

لذلك، إذا كان المثبت لديه شرط مسبق مثبت في موقع غير قياسي، فسيتعين عليه إصدار

./configure CPPFLAGS=-I/non-standard-dir/include LDFLAGS=-L/non-standard-dir/lib

لأن CPPFLAGS و LDFLAGS تستخدم من قبل configure الشيكات و Makefile القواعد، كل شيء يجب أن يعمل.

بعض المؤلفين حزمة ترغب في تقديم --with-صفقة=location الخيار باختصار لما ورد أعلاه، ولكن هذا عادة ليس هو الغرض من --with-صفقة والخيارات. هذه الخيارات تستخدم أفضل لتحديد ما إذا كان يجب استخدام حزمة اختيارية، أو كيف ينبغي الوفاء بالشرط مسبقا.

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