2009-01-19 61 views
0

我想在cygwin上編譯slapd(LDAP服務器)的一個非常古老的版本。以前這在Linux機器上運行,但由於我無法控制的原因,它必須在Windows服務器上運行。有人建議我們可以使用cygwin來編譯源代碼。 Cygwin的 - 這是一個Win32計算機:試圖在cygwin上編譯slapd,這個automake錯誤是什麼意思?

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);}

UPDATE

不幸的是,構建 「配置」,並顯示錯誤消息時失敗不包含名爲user32的共享對象,但Windows XP確實包含名爲user32.dll的對象 - 任何想法,如果這可能是鏈接器正在尋找?

UPDATE2:w32api已經安裝,(3.13-1) - 我注意到有一個user32.lib作爲visual-stuido 2003.Net的一部分 - 有沒有辦法讓Cygwin中的GCC使用它?

回答

0

經過大量試用&錯誤我發現這個問題的正確答案:這個錯誤的原因是Cygwin環境設置不正確。

默認情況下,域中的登錄用戶以及/ etc/passwd &/etc/group文件未正確設置。解決方案是創建一個本地用戶帳戶,然後重新構建密碼和組文件。

之後,海灣合作委員會可以建立得很好。

聽起來很瘋狂,我知道。

1

根本原因似乎是

/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld:找不到-luser32

這可能是您的cygwin安裝的問題,或者是配置腳本老化以識別和處理安裝。

1

如果-luser32失敗,請嘗試安裝w32api Cygwin軟件包。