APUE(unix環境高級編程)第三版---first day---部署書中實例的運行環境(apue.h)

操做環境:RHEL7.0linux

部署apue.h實例運行環境

1.下載頭文件src.3e.tar.gz
2.解壓函數

tar zxvf src.3e.tar.gz

3.建立普通用戶(我仿照書上建立的sar用戶).net

useradd sar

4.修改文件
* 文件apue.3e/Make.defines.linux加入下面所示內容,指定工做目錄
6 WKDIR = /home/sar/apue.3e
* 文件apue.3e/threadctl/getenv1.capue.3e/threadctl/getenv3.c第一行修改以下
1 #include <linux/limits.h>code

5.下載安裝libbsd和libbsd-devel(我嘗試yum安裝,顯示找不到libbsd安裝包,故以下下載rpm包)部署

wget http://elrepo.reloumirrors.net/testing/el6/x86_64/RPMS/libbsd-devel-0.2.0-4.el6.elrepo.x86_64.rpm
wget http://elrepo.reloumirrors.net/testing/el6/x86_64/RPMS/libbsd-0.2.0-4.el6.elrepo.x86_64.rpm
rpm -ivh libbsd-0.2.0-4.el6.elrepo.x86_64.rpm
rpm -ivh libbsd-devel-0.2.0-4.el6.elrepo.x86_64.rpm

若不安裝則在下一步make時會出現以下報錯:get

.....
barrier.c:(.text+0x6e): undefined reference to `heapsort’
collect2: ld
make[1]: *** [barrier] 
make[1]: Leaving directory `/home/albert/Documents/progs/apue.3e/threads’
make: *** [all]

6.編譯apueit

cd apue.3e/
make

7.把apue.hlibapue.a放入到對應的目錄中編譯

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

緣由:libapue.a是apue.h頭文件中包含的全部函數及宏定義的具體實現,是一個靜態連接庫。查看ld.conf.d/libc.conf你會發現gcc在搜索連接庫的時候默認會去搜索/usr/local/lib/中的文件。thread

相關文章
相關標籤/搜索