《UNIX环境高级编程》学习环境搭建---apue.h

3,022 阅读1分钟

正式开始学习《APUE》,跟着学习的过程中也动手实践一下,所使用的操作系统为Ubuntu18.04

基本步骤

  1. 在官网上下载书中源代码
  2. tar -zxvf src.3e.tar.gz
  3. cd apue.3e
  4. make 可能会出现以下错误
/usr/bin/ld: 找不到 -lbsd
collect2: error: ld returned 1 exit status

解决办法:添加libbsd.a的静态链接库 sudo apt-get install libbsd-dev

  1. make

  2. 编译成功后,开始安装apue.h文件及其对应的静态链接库libapue.a

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

可以看到,我们拷贝一个apue.h文件到用户包含目录,还拷贝了一个libapue.a到库目录,其中libapue.a是apue.h头文件中包含的所有函数及宏定义的具体实现的一个静态链接库

  1. 至此,APUE的环境搭建成功,进行测试一下,下面这个是书中1-3的例子:
//1.3查看目录
#include "apue.h"
#include <dirent.h>

int main(char argc, char *argv[])
{
	DIR *dp;
	struct dirent *dirp;

	if(argc != 2)
		err_quit("usage: Is directory_name");
	if((dp = opendir(argv[2])) == NULL)
		err_sys("can't open %s", argv[1]);
	while((dirp = readdir(dp)) != NULL)
		printf("%s\n",dirp->d_name);
	
	closedir(dp);
	exit(0);
}
  1. 编译 gcc 1-3.c -o 1-3 -lapue libapue.a在这里要写成apue,不了解的同学请复习一下gcc

  2. 至此,apue环境搭建成功,大家尽情畅游吧