Cygwin是一个windows上对unix的模拟,故而基本编译过程和Unix相同, 如果只想编译c library的话, 操作方式和unix是完全一样, 就是一个configure/make的过程.
但是,如果需要编译tcl library的话,就需要注意一些内容. 由于tcl library可以让用户通过tclsh以shell的方式来操作bdb,即,逐步输入命令, 逐步查看结果. 所以, tcl library实际可以增进对bdb的学习.
实际上,bdb的test suite以tcl test为主, tcl test需要编译出动态的tcl library. 所以稍微介绍一下编译动态tcl library的过程.
1 configure/make
cd db/build_unix
../dist/configure --enable-test --with-tcl=/usr/lib --enable-cxx
make
在make过程中会出现一大批错误,都是tcl library的编译错误
修改Makefile, 将LIBTSO_LIBS的值设置为非空的值:
LIBTSO_LIBS= -ltcl84
同时,由于cygwin中动态库是用windows的dll,而dll一般不在lib目录下,而在bin底下,故而需要设置一下LD_LIBRARY_PATH:
export LD_LIBRARY_PATH="/bin:$LD_LIBRARY_PATH"
而后在执行make,整个编译过程就完成了
2 测试 tcl 的library
$cd .libs; mv cygdb_tcl-4.8.dll libdb_tcl-4.8.dll;cd ..
$tclsh
%source ../test/test.tcl
% test001 btree
Test001: btree ( -cachesize {0 1048576 3} ) 10000 equal key/data pairs
Test001: Starting at 0 with dictionary entry 0
Test001.a: put/get loop
Test001.b: dump file
Test001.c: close, open, and dump file
Test001.d: close, open, and dump file in reverse direction
这就说明cygwin的tcl library也编译成功了
阅读(2615) | 评论(0) | 转发(0) |