• 将openldap移植到windows的方法


    首先,至少需要有Berkeleydb和Cyrus SASL
    如果需要tls,还要有openssl
    openldap自从2.2x版以后就不在提供移植到windows下的工程文件了,但是它里面还是有有这方免得考虑,移植起来还是可以实现的。经过两三天的实验,我已经把其中的几个比较重要的库编译出来了,下面介绍下这个在windows下编译openldap的过程。我的编译环境是win xp, VC 6.0,另外我还用到了cygwin,其实并不重要,只是为了要把那些在linux下产生的代码拷贝过来。

    1、编译liblber
    (1)建立静态链接库工程文件,取名为liblber
    (2)导入4个头文件到openldap\include中:
            lber_types.h
            ldap_config.h
            ldap_features.h
            portable.h
    (2)导入librares\liblber中的文件,可以不用包括idtest.c, dtest.c和etest.c
    (3)关闭宏:
    TIME_WITH_SYS_TIME
    HAVE_SYS_TIME_H
    LDAP_SYSLOG
    HAVE_LONG_LONG
    HAVE_POLL_H
    HAVE_GETOPT_H
    HAVE_GETOPT
    HAVE_SYS_IOCTL_H
    HAVE_FCNTL
    HAVE_NONPOSIX_STRERROR_R
    HAVE_STRERROR_R
    HAVE_STRERROR
    打开宏:
    HAVE_WINSOCK2
    HAVE_WINSOCK2_H
    HAVE_WINSOCK_H
    HAVE_WINSOCK
    (4)把所有的long long 型定义都改成unsigned long型
    (5)编译,生成liblber.lib

    2、编译libldap
    (1)建立静态链接库工程libldap
    (2)导入libraries\libldap中文件,除了dntest.c ftest.c test.c这些测试工程
    (3)关闭宏:
    HAVE_SYS_PARAM_H
    HAVE_ARPA_NAMESER_H
    HAVE_SYS_FILE_H
    HAVE_RESOLV_H
    HAVE_RES_QUERY
    HAVE_TLS
    HAVE_POLL
    HAVE_TLS
    HAVE_SYSCONF
    HAVE_SYS_UIO_H
    LDAP_PF_LOCAL
    HAVE_DIRENT_H
    HAVE_HSTRERROR
    HAVE_GETDTABLESIZE
    HAVE_INET_ATON
    打开宏:
    #define socklen_t int
    在portable.h中加入下面两行:
    #define strcasecmp        stricmp
    #define strncasecmp        strnicmp
    (4)编译,生成libldap.lib

    3、编译liblutil
    (1)建立静态库工程liblutil
    (2)导入libraries\liblutil中的文件,但不导入detach.c
    (3)关闭宏:
    HAVE_FLOCK
    HAVE_SIGACTION
    URANDOM_DEVICE
    在portable.h后面加上以下四行:
            #define PROV_RSA_FULL 1
            typedef unsigned long HCRYPTPROV;
            typedef unsigned long DWORD;
            typedef unsigned char BYTE;
    (4)编译,生成liblutil.lib


    基本上如果要开发客户端的话,把这三个库编出来似乎就可以了,我试了试,一般的增、删、改、查都可以了,注意开发客户端时,除了要连接这几个库,还要有libsasl.lib和ws2_32.lib这些库,可能还会有wsock32.lib吧,如果连接不过可以试试。。。

    有什么不足之处,希望大家指正。多多发言啊,臭鸡蛋鲜花一块上,什么我都要,哈哈

  • 相关阅读:
    VUE第一个项目怎么读懂
    Excel催化剂开源第33波-Quick Bible For PPT插件项目全代码开源
    [iOS基础控件
    awk支持多个记录分隔符的写法
    关于awk中NR、FNR、NF、$NF、FS、OFS的说明
    测试开发CICD——Docker——docker安装nginx
    测试开发CICD——Docker——docker安装python3.5
    测试开发CICD——Docker——docker安装tomcat
    测试开发CICD——Docker——docker安装redis
    测试开发CICD——Docker——docker安装mysql
  • 原文地址:https://www.cnblogs.com/adylee/p/1283933.html
Copyright © 2020-2023  润新知