Ubuntu 下用C语言访问gdbm数据库编译注意事项(使用ndbm方式)

今天看书<Linux程序设计>(第三版)第七章,编译两个dbm1.c和dbm2.c文件时编译错误,提示:

$ gcc -ldbm -o dbm1 dbm1.c
/usr/bin/ld: cannot find -ldbm

collect2: ld returned 1 exit status 

把-ldbm改成-lgdbm仍然报错,查了下资料终于找到解决方案。

 

把dbm1.c文件里的头文件声明#include <ndbm.h>注释掉,然后把#include <gdbm-ndbm.h>头文件的注释去掉,如下:

 

 //#include <ndbm.h>
/*
 On some systems you need to replace the above with */
#include 
<gdbm-ndbm.h>
编译文件时需要使用如下命令:
$ gcc 
-lgdbm_compat -o dbm1 dbm1.c

  Ubuntu中默认安装的是gdbm数据库,应该使用gdbm实现来访问数据库。若还是需要以dbm若ndbm方式来访问数据库的话就需要使用gdbm-ndbm.h头文件,编译链接时应使用-lgdbm_compat链接选项

 

posted @ 2009-11-17 17:08  羊八井  阅读(1017)  评论(0编辑  收藏  举报