سؤال

أحاول بناء Python 2.6.2 من المصدر على نظام Linux الخاص بي. يحتوي على NCUMSES مثبتة على / USR / المحلية /، والنسيقات. H قيد التشغيل / USR / Local / Fine / NCUMSES. لذلك لم يتم العثور على countes.h في مسار التضمين، وهذه الحزم تفشل في بناء بيثون.

ما هو الحل المناسب لهذا؟ هو بيثون من المفترض أن تشملu003Cncurses/curses.h> ب يجب / USR / المحلية / تشمل / ncurses يكون في مسار تشمل؟ يجب أن يكون هناك رابط من الملفات الموجودة في دليل NCUMSES إلى / USR / Local /

أم أن هناك بعض الحل أبسط؟

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

المحلول

مع العديد من الحزم مفتوحة المصدر، يمكنك تعيين:

export CPPFLAGS="-I/usr/local/include"

او حتى:

export CPPFLAGS="-I/usr/local/include/ncurses"

قبل تشغيل البرنامج النصي التكوين. أنا لم أسبجم بيثون مؤخرا بما فيه الكفاية لتكون متأكدا من أن يعمل، ولكن ربما تفعل - لدي ncurses مثبتة بموجب / USR / GNU (بسبب / USR / Local / AtmoNted وتحتوي على التحف) ولا أتذكر الاضطرار إلى الاضطرار استخدم أي شيء خاص للحصول عليه للعمل.


فحص مزدوج ...

يتضمن البرنامج النصي التكوين فقط <curses.h>. وبعد اضطررت إلى استخدام:

export CPPFLAGS="-I/usr/gnu/include -I/usr/gnu/include/ncurses"
export LDFLAGS="-L/usr/gnu/lib"
./configure

للحصول على Python (2.5) تكوين لقبول اللعنات. كنت تحل محل "gnu' مع 'localلتكوينك.

نصائح أخرى

أعلم أن هذا سؤال قديم للغاية، لكن المشكلة لا تزال تحدث لي عند تجميع Python 3.6.0 من المصدر لذلك أعتقد أنه لا يزال من المناسب.

تأتي الإصدارات الحديثة من NCURSES في العديد من النكهات: دعم الطابع الطبيعي العادي، الخيوط. من أجل السماح للمبرمجين بالحفاظ على النكهات المختلفة واستخدامها، بالإضافة إلى تسمية المكتبات بشكل مختلف (ncursesw.so, ncursest.so, ، إلخ)، يقوم البرنامج النصي بتكوين NCUMSES في إعداد MICFILE لوضع ملفات الرأس في الدلائل الفرعية بشكل افتراضي. هذا يسمح أيضا بإجراء تطبيقات لعنات مختلفة إلى جانب NCURSES، كما هو محدد في رجل صفحة.

بعض البرامج، ومع ذلك، لا تزال تفترض ذلك curses.h, ، على طول جميع رؤوس NCURSES الأخرى، يتم وضعها في المستوى العلوي، وتشمل مسارات البحث، ولن ننظر إلى الدلائل الفرعية. في العديد من توزيعات Linux، عادة ما يكون هناك نوع من الحل البديل للمشكلة في حزم تطوير NCUMSES، ولكن إذا كنت تجميع NCUMSES من المصدر، فهناك نوعان من النهج المحتملة لحل المشكلة:

  1. استخدام CPPFLAGS أو ما يعادلها، كما تشير الإجابة المقبولة. إنه يعمل، ولكن عليك تعيين أعلام الترجمة المناسبة في كل مرة.
  2. تكوين ncurses مع --enable-overwrite. وبعد سيؤدي ذلك إلى تثبيت ملفات رأس NCURSES في أعلى مستوى في الدليل، وفقا ل --prefix.

إذا كنت لا تخطط لتثبيت مكتبة لعنات بديلة، فهي آمنة تماما لوضع رؤوس NCUMSES في المستوى الأعلى تتضمن المسار، وهو النهج التالي جنتو.

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