محاولة تجميع SLAPD على Cygwin ، ماذا يعني خطأ Automake هذا؟
-
19-08-2019 - |
سؤال
أحاول تجميع مجموعة قديمة جدًا من SLAPD (خادم LDAP) على Cygwin. في السابق ، كان هذا يعمل على مربع Linux ، ولكن لأسباب خارجة عن سيطرتي ، يجب عملها للعمل على خادم Windows. لقد اقترح أن نستخدم Cygwin لتجميع رمز المصدر.
لسوء الحظ ، فشل البناء أثناء "تكوين" مع رسالة الخطأ:
checking how to run the C preprocessor... cc -E checking for gcc... (cached) cc checking whether the C compiler (cc ) works... no configure: error: installation or configuration problem: C compiler cannot creat e executables.
الأسطر القليلة الأخيرة من config.log هي:
configure: failed program was: #line 2822 "configure" #include "confdefs.h" int main() { return __EMX__; ; return 0; } configure:2845: checking how to run the C preprocessor configure:2866: cc -E conftest.c >/dev/null 2>conftest.out configure:2950: checking for gcc configure:3063: checking whether the C compiler (cc ) works configure:3079: cc -o conftest conftest.c 1>&5 /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -luser32 collect2: ld returned 1 exit status configure: failed program was: #line 3074 "configure" #include "confdefs.h" main(){return(0);}
تحديث: هذا كمبيوتر win32 - لا يتضمن cygwin كائن مشترك يسمى user32 ، لكن Windows XP يتضمن كائنًا يسمى user32.dll - أي فكرة إذا كان هذا قد يكون ما يبحث عنه الرابط؟
update2: تم تثبيت W32API بالفعل ، (3.13-1) - لاحظت أن هناك user32.lib كجزء من Visual -Stuido 2003 .NET - هل هناك طريقة لجعل GCC في Cygwin تستخدم هذا؟
المحلول 3
بعد الكثير من التجربة والخطأ ، وجدت الإجابة الصحيحة لهذه المشكلة: سبب هذا الخطأ هو أنه لم يتم إعداد بيئة Cygwin بشكل صحيح.
لم يتم إعداد مستخدم تسجيل الدخول على مجال ، وبالتالي لم يتم إعداد ملفات /etc /passwd & etc /group بشكل صحيح. كان الحل هو إنشاء حساب مستخدم محلي ثم إعادة بناء ملفات PassWD والمجموعات.
بعد ذلك ، يمكن لـ GCC البناء على ما يرام.
يبدو مجنونا ، وأنا أعلم.
نصائح أخرى
يبدو أن السبب الجذري
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../../../i686-pc-cygwin/bin/ld: لا يمكن العثور على -luser32
هذه إما مشكلة في تثبيت cygwin الخاص بك ، أو أن البرامج النصية التكوين هي القديمة للتعرف على التثبيت والتعامل معه.
إذا فشل -luser32 ، فحاول تثبيت w32api
حزمة Cygwin.