CentOS 7如何安装 libbsd-dev && 编译apue.3e时出错处理(以便使用Unix环境高级编程中的apue.h库)

1. 首先需要下载源代码压缩包:
UNIX高级环境编程的源代码 – src.3e.tar.gz

2. 在CentOS-7下解压源代码文件

tar -zxv -f src.3e.tar.gz -C /usr/include/

3. 转到解压后的apue.3e/目录下进行make编译:

make

4. 进行编译后报错信息为:

gcc -ansi -I…/include -Wall -DLINUX -D_GNU_SOURCE barrier.c -o barrier -L…/lib -lapue -pthread -lrt -lbsd
/tmp/cc6Z8vzR.o: In function thr_fn': barrier.c:(.text+0x80): undefined reference toheapsort’
collect2: error: ld returned 1 exit status
make[1]: *** [barrier] Error 1

5. 发现heapsort在CentOS-7下没有相关的库,下载Fedora的资源进行安装:

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

然后执行:

# yum install libbsd libbsd-devel

5.现在可以make了

6.把make生成的apue.h与静态链接库libapue.a放到系统指定寻找的地方:

cp ./include/apue.h /usr/include/
cp ./lib/libapue.a /usr/local/lib/

现在就可以使用《Unix环境高级编程》中的apue.h库了!

以一个简单的程序为例:

[root@localhost test]# ls
hello.c
[root@localhost test]# cat hello.c
#include"apue.h"
int main(void){
printf(“hello world from process ID %d\n”,(long)getpid());
exit(0);
}
[root@localhost test]# gcc hello.c -l apue
[root@localhost test]# ls
a.out hello.c
[root@localhost test]# ./a.out
hello world from process ID 99017

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狱典司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值