2009-01-19 62 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软件包。