天天看点

unix环境高级编程第三版环境配置

1.问题

下载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了。



继续阅读