LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: 小丑奇兵

在编译postfix的时候遇到了错误.帮帮我吧?!

[复制链接]
发表于 2004-4-22 09:00:31 | 显示全部楼层
俺是把posfix目录下所有的makefile中都加了-lpthread
发表于 2004-4-22 16:23:30 | 显示全部楼层
pthread和ntpl好像不能同时用吧,可能因为你的系统是ntpl的,所以连不上pthread.
发表于 2004-4-22 20:45:18 | 显示全部楼层
nptl不正是pthread的实现么?
俺又试了一次
用的是postfix 2.0.18
直接make

出错/usr/lib/libdb.so: undefined reference to `pthread_condattr_setpshared'
/usr/lib/libdb.so: undefined reference to `pthread_mutexattr_destroy'
/usr/lib/libdb.so: undefined reference to `pthread_mutexattr_setpshared'
/usr/lib/libdb.so: undefined reference to `pthread_mutexattr_init'
/usr/lib/libdb.so: undefined reference to `pthread_mutex_trylock'
collect2: ld returned 1 exit status
make: *** [master] Error 1
make: *** [update] Error 1
make: *** [update] Error 2

然后

for FILE in `find -name Makefile`; do sed 's/-lnsl/-lnsl -lpthread/g' $FILE > $FILE.tmp; mv $FILE.tmp $FILE; done

通过,
小丑兄,我想你在make之前用了 sed命令,那时Make中根本没有
LD的参数设定,所以sed没起作用,postfix应该是在第一次make的时候重新生成了makefile,这在内核的 make dep中也是常用的手法么?
 楼主| 发表于 2004-4-23 11:54:25 | 显示全部楼层
偶现在用的都是2.6的,所以不要make dep了。嘿嘿。
我用的是postfix-2.0.19的。其实就像我前面说的。
只要改一改你所使用的命令,然后对makedefs这个文件进行修改,之后生成的Makefile的文件就可以了。
 楼主| 发表于 2004-4-23 11:55:33 | 显示全部楼层
现在已经安装成功了,本来我是不会使用sed。
waker兄,谢谢你了。呵呵。
发表于 2004-4-23 23:54:01 | 显示全部楼层
http://www.postfix.org/DB_README.html#pthread
这应该是官方的解法
发表于 2004-4-24 07:52:50 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表