使用msys;mingw编译openldap
2007-01-09 11:58
405 查看
用msys和mingw编译完了bdb后(http://blog.csdn.net/zzw_happy/archive/2007/01/05/1475053.aspx)就可以编译openldap了。
注意: 编译bdb时一开始我有错误,请按照后来更正的方法编译,否则openldap无法使用。
先看看faq:
http://www.openldap.org/faq/data/cache/300.html
http://www.openldap.org/faq/data/cache/301.html
http://www.openldap.org/faq/data/cache/302.html
需要额外的正则表达式regex库,在unix系统这个库是自带的,在mingw32上没有,去ftp://ftp.gnu.org/gnu/regex下载,就一个c和一个h文件,编译后用ar做成静态库,拷贝h文件到mingw/include下,拷贝库到ming/lib下。
我用的openldap 2.3.24,解压后:
export CFLAGS="-g -I/c/cpp/lib-gcc/include -I/c/cpp/lib-gcc/include/bdb" LDFLAGS="-L/c/cpp/lib-gcc/lib -I/c/cpp/lib-gcc/include" CPPFLAGS="-g -I/c/cpp/lib-gcc/include/bdb"; ./configure --enable-hdb=no --enable-rewrite=no
路径需要设置好,可以设置需要的overlay参数。
configure后需要在rewrite和server目录下的makefile中需要将AC_LIBS = -lws2_32 改为AC_LIBS = -lws2_32 -lregex,即加入刚才编译的regex库。
然后make depend; make。OK
修改configure:
line: 1414
cat >>confdefs.h <<_ACEOF
#ifdef MINGW
#include <windows.h>
#endif //zzw: mingw need this ?
#define PACKAGE_NAME "$PACKAGE_NAME"
_ACEOF
line: 6689
#ifndef MINGW
char SQLDriverConnect (); //zzw: mingw dont accept this ?
#else
#include <sqlext.h>
#endif
int
main ()
{
#ifndef MINGW
SQLDriverConnect ();
#else
SQLDriverConnect(0,0,0,0,0,0,0,0);
#endif
另外将所有的-lodbc改为-lodbc32,mingw带的是这个库。
在slapd目录的makefile 里 AC_LIB变量加上"-lRpcrt4"
config命令:
export CFLAGS="-DMINGW -g -I/c/cpp/lib-gcc/include -I/c/cpp/lib-gcc/include/bdb" LDFLAGS="-L/c/cpp/lib-gcc/lib -L/c/cpp/mingw/lib" CPPFLAGS="-g -I/c/cpp/lib-gcc/include/bdb"; ./configure --enable-hdb=no --enable-overlays --enable-sql --enable-meta --enable-ldap --enable-rewrite --enable-null --enable-shared=no
这样开启了所有的overlay,除了没有hdb库(bdb比它要好,可以不要),几乎所有功能都有了,产生的为静态库。全部静态编译。
注意: 编译bdb时一开始我有错误,请按照后来更正的方法编译,否则openldap无法使用。
先看看faq:
http://www.openldap.org/faq/data/cache/300.html
http://www.openldap.org/faq/data/cache/301.html
http://www.openldap.org/faq/data/cache/302.html
需要额外的正则表达式regex库,在unix系统这个库是自带的,在mingw32上没有,去ftp://ftp.gnu.org/gnu/regex下载,就一个c和一个h文件,编译后用ar做成静态库,拷贝h文件到mingw/include下,拷贝库到ming/lib下。
我用的openldap 2.3.24,解压后:
export CFLAGS="-g -I/c/cpp/lib-gcc/include -I/c/cpp/lib-gcc/include/bdb" LDFLAGS="-L/c/cpp/lib-gcc/lib -I/c/cpp/lib-gcc/include" CPPFLAGS="-g -I/c/cpp/lib-gcc/include/bdb"; ./configure --enable-hdb=no --enable-rewrite=no
路径需要设置好,可以设置需要的overlay参数。
configure后需要在rewrite和server目录下的makefile中需要将AC_LIBS = -lws2_32 改为AC_LIBS = -lws2_32 -lregex,即加入刚才编译的regex库。
然后make depend; make。OK
2007.1.11 编译sql-backend的方法
如果需要sql backend, 还的其它的一些修改:修改configure:
line: 1414
cat >>confdefs.h <<_ACEOF
#ifdef MINGW
#include <windows.h>
#endif //zzw: mingw need this ?
#define PACKAGE_NAME "$PACKAGE_NAME"
_ACEOF
line: 6689
#ifndef MINGW
char SQLDriverConnect (); //zzw: mingw dont accept this ?
#else
#include <sqlext.h>
#endif
int
main ()
{
#ifndef MINGW
SQLDriverConnect ();
#else
SQLDriverConnect(0,0,0,0,0,0,0,0);
#endif
另外将所有的-lodbc改为-lodbc32,mingw带的是这个库。
在slapd目录的makefile 里 AC_LIB变量加上"-lRpcrt4"
config命令:
export CFLAGS="-DMINGW -g -I/c/cpp/lib-gcc/include -I/c/cpp/lib-gcc/include/bdb" LDFLAGS="-L/c/cpp/lib-gcc/lib -L/c/cpp/mingw/lib" CPPFLAGS="-g -I/c/cpp/lib-gcc/include/bdb"; ./configure --enable-hdb=no --enable-overlays --enable-sql --enable-meta --enable-ldap --enable-rewrite --enable-null --enable-shared=no
这样开启了所有的overlay,除了没有hdb库(bdb比它要好,可以不要),几乎所有功能都有了,产生的为静态库。全部静态编译。
说明:
sql的backend我用不到,只是突然想试试看可不可以编译sql,由于做了一些修改,不知道编出来的东西能不能支持sql,有兴趣的朋友可以帮忙测试一下, 不管成功与否,给点feedback, 谢谢了先相关文章推荐
- Windows下使用MinGW+msys编译FFmpeg错误
- Windows下使用MinGW+msys编译ffmpeg-2.6.3,没生成ffplay.exe
- Windows系统使用minGW+msys 编译ffmpeg全过程
- MSYS是一个小型的GNU环境,包括基本的bash,make等等,与Cygwin大致相当(没有它,就不能使用mingw自动编译)
- windows 下使用 MinGW + msys 编译 ffmpeg
- windows下使用MinGW+msys编译ffmpeg
- OpenBlas编译方法(体验msys下使用MingW)
- 开源项目:windows下使用MinGW+msys编译ffmpeg
- windows下使用MinGW+msys编译ffmpeg
- Windows系统使用minGW+msys 编译ffmpeg 0.5的全过程详述
- windows下使用MinGW+msys编译ffmpeg
- 使用minGW+msys 编译ffmpeg 0.5
- Windows 系统下使用 MinGW + MSYS + GCC 编译 FFMPEG
- Windows系统使用minGW+msys 编译ffmpeg 0.5的全过程详述
- windows下使用MinGW+msys编译ffmpeg
- windows下使用MinGW+msys编译ffmpeg
- Windows系统使用minGW+msys 编译ffmpeg 0.5的全过程详述
- windows下使用mingw和msys编译GOTOBLAS和OpenBLAS
- windows下使用MinGW+msys编译ffmpeg(ffmpeg各版本下载)
- windows 下使用 MinGW + msys 编译 ffmpeg