第三版apue编译:
首先在 http://www.apuebook.com/ 下载源码解压:
tar zxvf src.3e.tar.gz
看完Readme可知,直接执行make即可
执行make报错:
making threads
make[1]: 正在进入目录 `/work/apue/apue.3e/threads'
gcc -ansi -I../include -Wall -DLINUX -D_GNU_SOURCE badexit2.c -o badexit2 -L../lib -lapue -pthread -lrt -lbsd
/usr/bin/ld: cannot find -lbsd
collect2: error: ld returned 1 exit status
make[1]: *** [badexit2] 错误 1
make[1]:正在离开目录 `/work/apue/apue.3e/threads'
make: *** [all] 错误 1
编译线程程序时找不到 bsd 的库
解决方法:
1)ubuntu
sudo apt-get install libbsd-dev
2) fedora, redhat, centos
2.1) 下载两个包
2.1a) i386
ftp://ftp.univie.ac.at/systems/linux/fedora/epel/6/i386/libbsd-0.6.0-1.el6.i686.rpm
ftp://ftp.univie.ac.at/systems/linux/fedora/epel/6/i386/libbsd-devel-0.6.0-1.el6.i686.rpm
2.1b) x86_64
ftp://ftp.univie.ac.at/systems/linux/fedora/epel/6/x86_64/libbsd-0.6.0-1.el6.x86_64.rpm
ftp://ftp.univie.ac.at/systems/linux/fedora/epel/6/x86_64/libbsd-devel-0.6.0-1.el6.x86_64.rpm
2.2)安装如上包,注意命令顺序
2.2a) i386
sudo yum install libbsd-0.6.0-1.el6.i686.rpm
sudo yum install libbsd-devel-0.6.0-1.el6.i686.rpm
2.2b) x86_64
sudo yum install libbsd-0.6.0-1.el6.x86_64.rpm
sudo yum install libbsd-devel-0.6.0-1.el6.x86_64.rpm
然后继续 make,成功编译
将 include/apue.h 拷贝到 /usr/include/ 目录下
将 lib/libapue.a 拷贝到 /usr/lib/ 目录下
以后要自己编译程序就可以直接使用编译出来的库了
接下来试一下这本书第一个例子,在 intro/ 目录下 ls1.c
先删掉 ls1 再编译 :
cd intro/
rm ls1
gcc -o ls1 ls1.c -lapue
ok ,ls 一下可以看到 ls1
执行:
./ls1 /home/