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