日期:2014-05-16  浏览次数:20800 次

请问如何指定编译时候用到哪些库文件的?
事情是这样的,我在RedHat   AS   4中部署邮件服务器,OpenLDAP+SASL+Courier+Postfix等等,在编译完Courier后发现认证不了,查看原因是因为Counrier并没有用到我自己安装的OpenLDAP,而是用了RedHat自带的,我自己的库安装到了/usr/lib中,而自带的LDAP的库是安装到/usr/lib64里面的,就是说Courier用了/usr/lib64里面的了,所以导致老是说密码不正确,请问我在编译Courier的时候应该如何指定链接的路径,我用-lldap选项,但似乎这个默认是指向/usr/libn64里面的了,帮忙想下办法,谢谢!

------解决方案--------------------
修改/etc/ld.so.conf文件, 添加库的路径.
------解决方案--------------------
ld的手册上有这么一句:
Directories specified on the command line are searched before the default directories.
所以楼主在链接时把 -L/usr/lib -lldap放在LDFLAGS的最后试试。
例如
LDFLAGS += -L/usr/lib -lldap
prog: $(OBJS)
gcc $(LDFLAGS) -o $@ $(OBJS)