不能编译gdbm程序?(解决)

来源:互联网 发布:php 变量前加@ 编辑:程序博客网 时间:2024/06/04 18:11

 

下面是一个从《Beginning Linux Programming 3rd》中的一个例子程序,但是在Ubuntu下编译不了,原因是10.04中没有安装gdbm,在www.gnu.org上下载gdbm,安装时要记得将make install_compa,即将ndbm同时安装上。

 

尝试编译1:
$gcc dbm1.c -o gdbm1 -lgdbm
错误信息:
/tmp/cc2vMknU.o: In function `main':
dbm1.c: (.text+0x2d): undefined reference to `dbm_open'
dbm1.c: (.text+0x244): undefined reference to `dbm_store'
dbm1.c: (.text+0x2ee): undefined reference to `dbm_fetch'
dbm1.c: (.text+0x379): undefined reference to `dbm_close'
collect2: ld returned 1 exit status

尝试编译2:
$ gcc dbm1.c -o gdbm1 -lndbm -L/usr/lib
错误信息:
/usr/bin/ld: cannot find -lndbm
collect2: ld returned 1 exit status

解决了:
如果用gdbm,还要兼容dbm或ndmb,编译的时候要连接上gdbm_compat:
$ gcc dbm1.c -o dbm1 -lgdbm -lgdbm_compat