خطأ في Cygwin:*** لا يحتوي النمط المستهدف على `%'

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

  •  03-07-2019
  •  | 
  •  

سؤال

لقد حصلت على هذا الخطأ أثناء (إعادة) البناء باستخدام إصدار cygwin make.exe: 3.81.

Error : *** target pattern contains no `%'.
هل كانت مفيدة؟

المحلول

ويرجع ذلك إلى وجود ":" هذا الخطأ. ولذلك لم يعد يعتمد النوافذ المسارات. تحتاج إلى تحميل النسخة 3.80 واستبدال make.exe في الدليل \bin.

وعلى ما يبدو أنه يحتاج cygintl12.dll جدا.

نصائح أخرى

  • التراجع لجعل 3.80 (جيان4)

    • cd /usr/bin
    • mv make.exe make_381.exe
    • wget http://geant4.cern.ch/support/extras/cygwin/make.exe
    • chmod +x make.exe
  • ثَبَّتَ libintl2 من إعداد cygwin للمطلوب cygintl-2.dll

وحصلت على نفس الخطأ عند محاولة بناء مشروع على لينكس أو OSX، التي بنيت في السابق على جهاز ويندوز وكان بعض على .o.d ملفات التسكع في المجلد الإخراج.

وبمجرد أن حذف يدويا على .o.d ملفات تم حل المشكلة. يبدو الأمر "تنظيف" بلدي IDE (CodeLite في هذه الحالة) لم حذف على .o.d ملفات.

وعلى الأرجح بسبب وجود القولون بعد حرف محرك الأقراص. على سبيل المثال النظر

build : $(NativeHeaders)/*

إذا

NativeHeaders=../../../cpp/generated

وبعد ذلك كل شيء على ما يرام، ولكن

NativeHeaders=C:/dev/folder/cpp/generated

والنتائج في الخطأ الذي تحصل عليه.

وكنت الحصول على هذا الخطأ لأنه لم يكن لديك شخصية تبويب (\ ر) في بداية صاياي. كنت قد expandtab في همة بلدي تعيين بحيث انها استبدال حرف جدولة مع 4 مسافات. عندما التفت أن من وغيرت مسافات للعلامة تبويب كانت ثابتة

كان لدى ال target pattern contains no '%' حدث خطأ أثناء الإنشاء باستخدام Android NDK باستخدام cygwin.

لقد وجدت الرابط التالي مفيدًا:

الأخطاء التي تم إنشاؤها بواسطة Make

  • "نمط الهدف المفقود."قف.'
  • "أنماط مستهدفة متعددة."قف.'
  • "النمط المستهدف لا يحتوي على `%".قف.'
  • "قواعد النمط الضمني والثابت المختلطة."قف.'

يتم إنشاؤها لقواعد النمط الثابت المشوهة.الأول يعني عدم وجود نمط في القسم المستهدف من القاعدة؛والثاني يعني وجود أنماط متعددة في القسم المستهدف؛والثالث يعني أن الهدف لا يحتوي على حرف النمط (%)؛والرابع يعني أن الأجزاء الثلاثة من قاعدة النمط الثابت تحتوي على أحرف نمط (%) - يجب أن يحتوي الجزءان الأولان فقط.إذا رأيت هذه الأخطاء ولم تحاول إنشاء قاعدة نمط ثابت، تحقق من قيمة أي متغيرات في قوائم الأهداف والمتطلبات الأساسية للتأكد من أنها لا تحتوي على نقطتين. يرى بناء جملة قواعد النمط الثابت.

وهكذا، تضمن الحل الخاص بي تغيير متغيرات النظام من تنسيق Windows إلى تنسيق Unix كما يلي:

  • بدلاً من C:\Android\android-ndk-r10c, ، إستعملت /cygdrive/c/Android/android-ndk-r10c لمسار NDK.

وبالمثل، قمت بتغيير مسار مشروع NDK إلى /cygdrive/c/Android/project/src/main/jni.

في حالتي كنت تستخدم CMake تحت سيغوين عندما حصلت على هذا الخطأ. وتبين نسخة من ويندوز CMake أعدم. وفي وقت لاحق، تم استخدام مسارات Windows في ملف جعل. أنا ركبت نسخة سيغوين من CMake من خلال برنامج الإعداد وحصلت على عمل.

وكان لي هذه المشكلة على لينكس عندما يتضمن الدليل بناء ":" الناجمة عن تنفيذ عمليات سحب الزئبقي الذي إنشاء دليل مسمى. "الخادم: ميناء"

واضطررت الى تغيير التالية في ملفي جعل لتكون متوافقة مع Make_381:
قبل:
ARDUINO_BASE_DIR = C: \ برامج / اردوينو

والآن:
ARDUINO_BASE_DIR = \\ برامج / اردوينو

وجرب هذا إذا كنت تقوم بتشغيل الكسوف C / C ++ والرجوع الملفات من سيغوين تحت ويندوز، تأكد ج: / سيغوين / بن أو ج: يأتي / cygwin64 / بن بعد ما تبذلونه من أدوات المترجم المفضلة في بيئة مسار ويندوز الخاص بك

وعلى سبيل المثال:     مسار =؛ C: \ yagarto \ بن؛ C: \ yagarto الأدوات \ بن؛ C: \ cygwin64 \ بن؛

وبعد إجراء التغييرات والخروج الكسوف وإعادة لأنه نافذ المفعول (ببساطة إعادة تشغيل الكسوف من دون أن تخرج لن يحل المشكلة.

في مشروعي، وربما تلف الكائنات مجلد وكنت الحصول على هذا الخطأ. حذف الكائنات المجلد يدويا. ثم NDK والبناء اكتمل على ما يرام.

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