下载src.3e.tar.gz,解压,进入目录apue.3e,然后make,出现以下错误
make[1]: 进入目录“/root/test/apue.3e/threads”
gcc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE barrier.c -o barrier -L../lib -lapue -pthread -lrt -lbsd
/tmp/ccddCiAZ.o:在函数‘thr_fn’中:
barrier.c:(.text+0x80):对‘heapsort’未定义的引用
collect2: 错误:ld 返回 1
make[1]: *** [barrier] 错误 1
make[1]: 离开目录“/root/test/apue.3e/threads”
make: *** [all] 错误 1
2.解决办法
1)ubuntu
sudo apt-get install libbsd-dev
2)centos等
我的系统是centos7的,由于centos7系统没有libbsd-devel,网上有很多博客说可以用下面的命令可以安装
sudo yum install libbsd-0.6.0-1.el6.i686.rpm
sudo yum install libbsd-devel-0.6.0-1.el6.i686.rpm
我的系统上反正是不能安装,因此需要自行下载libbsd和libbse-devel,有需要的朋友的可以到我的网盘下载
http://pan.baidu.com/s/1pKK8LQz,也可以在shell中执行以下指令下载:
wget http://elrepo.reloumirrors.net/testing/el6/x86_64/RPMS/libbsd\-0.2.0-4.el6.elrepo.x86_64.rpm
wget http://elrepo.reloumirrors.net/testing/el6/x86_64/RPMS/libbsd-devel-0.2.0-4.el6.elrepo.x86_64.rpm
下载以后安装,按以下命令安装:
rpm -ivh libbsd-0.6.0-1.el6.x86_64.rpm
rpm -ivh libbsd-devel-0.6.0-1.el6.x86_64.rpm
然后重新make就ok了。