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 to heapsort’ 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
|