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

Posted 狱典司

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于CentOS 7如何安装 libbsd-dev && 编译apue.3e时出错处理(以便使用Unix环境高级编程中的apue.h库)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 CentOS 7 上安装 Docker

如何在 CentOS 7 上安装 Docker

如何在 CentOS 7 上安装 Docker

如何在CentOS 7.2下安装 Emacs

如何在 CentOS 7 上安装 Docker

如何在 CentOS 7 上安装 Docker