先转载一个链接: http://www.linuxidc.com/Linux/2010-08/27780.htm

 有关linux下面用C操作dbm资料库的问题,网上大部分都是如前面链接页面所述,要使用gdbm ,链接是要-lgdbm;如果要使用兼容ndbm的话还得包含gdbm-ndbm.h头文件。

 可某天我写一个dbm程序的时候,发现用上面的各种方法都不能解决undefined reference to `dbm_open的问题,甚至DBM * 的声明也不能通过,后来查看gdbm.h的源文件才发现,不能使用DBM ,而要使用GDBM 才能通过,另外dbm_open这些函数都得用gdbm_open这种形式,某些调用参数也有所改变,根据gdbm.h的声明一一调整之后,-lgdbm编译能正常通过。