ما هي الطريقة العادية للتعامل مع مواقع المكتبة غير القياسية في برنامج نصي Autoconf؟
-
09-09-2019 - |
سؤال
أحاول استخدام 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-
صفقة والخيارات. هذه الخيارات تستخدم أفضل لتحديد ما إذا كان يجب استخدام حزمة اختيارية، أو كيف ينبغي الوفاء بالشرط مسبقا.