天天看點

centos 7下使用《unix環境進階程式設計》第三版 中 apue.h問題

"apue.h"  是作者自己寫的一個檔案,裡面包含了一些作者自定義的函數和大多數頭檔案。

1.首先需要下載下傳 源碼包,centos用下面指令

wget http://www.apuebook.com/src.3e.tar.gz

下載下傳完成後後,解壓壓縮包指令:

tar -zxvf  src.3e.tar.gz

然後 進入  apue.3e 目錄下:  cd apue.3e

執行make 指令:make 

2.這裡一般會失敗,因為缺少libbsd庫,是以需要先安裝下面的兩個庫

ubuntu下面是直接sudo apt-get  install libbsd-dev

但是CentOS下面 yum的話是找不到的。解決方法就是下載下傳rpm包安裝libbsd-dev,具體步驟如下(筆者是64位的):

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

wget http://elrepo.reloumirrors.net/testing/el6/x86_64/RPMS/libbsd-devel-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

然後再然進入  apue.3e 目錄下:  cd apue.3e

在apue.3e目錄執行make指令進行編譯。如果編譯通過,會在apue.2e/lib/目錄下生成libapue.a靜态連結庫檔案。

1、apue.3e/lib/libapue.a拷貝至/usr/local/lib/目錄下。

2、apue.3e/include/apue.h拷貝至/usr/local/include/目錄下。

3、完成,但編譯時要加上-lapue指令,例如編譯test.c檔案,執行:gcc test.c -lapue

補充說明:程式裡面的err_quit,err_sys等等函數在apue.3e/lib/error.c中, error.c 實作apue.h中的出錯處理函數。

當然,如果按照上面的步驟制作了libapue.a庫的話,不需要單獨包含error.c