使用mingw和msys在windows上编译bdb

最近需要bdb,又没有vc,于是想用mingw和msys编译。使用db-4.4.20

1。进入build_unxi

../dist/configure后生成了makefile

在makefile中加入CPPFLAGS= -I$(builddir) -I$(srcdir) -w -s -O3 -DMINGW

2。make后有错误

修改os/os_flock.c,加入:

 #ifdef MINGW //zzw: we have no full fcntl support in mingw
 #undef HAVE_FCNTL
 typedef struct flock {}; //dummy
 #endif
去掉 flock 功能。

修改os_sleep.c,在末尾:

#ifdef MINGW //zzw: use windows sleep for select
 Sleep( t.tv_sec*1000 + t.tv_usec);
#else
 if (select(0, NULL, NULL, NULL, &t) == -1)
   if ((ret = __os_get_errno()) != EINTR)
   __db_err(dbenv, "select: %s", strerror(ret));
#endif

修改db_hotbackup.c:

   #ifdef MINGW //zzw:
 if (wfd != -1 && (_commit(wfd) != 0 || close(wfd) != 0)) {
  #else
 if (wfd != -1 && (fsync(wfd) != 0 || close(wfd) != 0)) {
  #endif

 

2007.1.9 重大失误!!

今天发现只要config时指定:../dist/configure --enable-mingw --enable-test=no --enable-static=no --enable-rpc=no --enable-o_direct=no --enable-pthread_self=no --enable-cxx=no --enable-java=no就可以了。不需要修改源文件,注意--enable-mingw,原来一直没有注意configure --help信息,编译的时候会出现建立连接ln失败,不用理会,继续make就行了。

 

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页