试图在cygwin上编译slapd,这个automake错误意味着什么?

时间:2009-01-19 14:24:29

标签: cygwin compilation automake

我正在尝试在cygwin上编译一个非常古老的slapd版本(LDAP服务器)。以前这是在Linux机器上运行,但由于我无法控制的原因,它必须在Windows服务器上运行。有人建议我们可以使用cygwin来编译源代码。

不幸的是,在“configure”期间,构建失败并显示错误消息:

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的一部分 - 有没有办法让Cygwin中的GCC使用它?

3 个答案:

答案 0 :(得分:1)

根本原因似乎是

  

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

这可能是您的cygwin安装问题,或者配置脚本是旧的以识别和处理安装。

答案 1 :(得分:1)

如果-luser32失败,请尝试安装w32api Cygwin软件包。

答案 2 :(得分:0)

经过多次试验&错误我找到了这个问题的正确答案:出现此错误的原因是Cygwin环境设置不正确。

域上的登录用户,所以/ etc / passwd&默认情况下,/ etc / group文件未正确设置。解决方案是创建一个本地用户帐户,然后重新构建passwd和groups文件。

在那之后,GCC可以建立得很好。

听起来很疯狂,我知道。