《UNIX環境高階程式設計》apue原始碼Ubuntu下的編譯

鴨脖發表於2013-06-08

在編譯書中例程時,常會報錯,主要問題是以下兩句程式碼

  1. #include"apue.h"  

這兩個標頭檔案並非Ubuntu系統自帶的,是《UNIX環境高階程式設計》作者自己編寫的用於定義及報錯的標頭檔案


解決方法:

1--下載APUE的程式碼(http://www.apuebook.com/src.tar.gz)並解壓,筆者的目標地址為/home/jimmy/p2p/apue.2e


2--開啟解壓出來的README檔案,按照“To build the source, edit the Make.defines.* file for your system and set
WKDIR to the pathname of the tree containing the source code.  Then just
run "make".說明修改Make.defines.linux 中的WKDIR,改為WKDIR=/home/jimmy/p2p/apue.2e


3--make 。

  1. jimmy@MyPet:~$ cd /home/jimmy/p2p/apue.2e  
  2. jimmy@MyPet:~/p2p/apue.2e$ make^C  

4--把/home/jimmy/p2p/apue.2e/include資料夾下的apue.h放到要編譯的原始碼的相同目錄下,但是筆者建議直接複製到/usr/include下,一勞永逸!


5--把lib資料夾中生成的alibapue.a放到要編譯的原始碼相同目錄下,否則在gcc 或者cc 程式碼時,會報如下錯誤

undefined reference to `err_quit'

undefined reference to `err_sys' 


 

6-- 使用gcc -o hello hello.c libapue.a來編譯原始碼,生成hello,執行./hello 即可。

相關文章