unix環境高級編程-教材代碼編譯過程

1 獲得源碼 
  從apue的官方網站http://www.apuebook.com/下載 源碼。(點擊here直接下載) 在windows下載後用U盤拷到linux系統下找個目錄解壓 
  tar -zxvf src.tar.gz 在當前目錄下解壓  通過pwd查看你解壓的目錄 這個目錄要記住會在下一步中用到
2 WKDIR
  編輯源碼解壓生成的apue.2e文件 夾下的Make.defines.linux 
  修改WKDIR=/home/sar/apue.2e爲你的apue.2e目錄 ,
  比如我的apue源碼解壓在主目錄下,那我就改爲:
  WKDIR=/home/tgl/apue.2e
3 nawk
        然後進入apue.2e/std 目錄,編輯linux.mk。修改裏面所有的nawk爲awk。4 stropts.h
  如果出現stropts.h找不到的情況,則下載glibc-2.11,
        ftp://ftp.gnu.org/gnu/glibc/
        解壓縮
  cp ./glibc-2.11/streams/stropts.h /usr/include
  cp ./glibc-2.11/bits/stropts.h /usr/include/bits
  cp ./glibc-2.11/sysdeps/x86_64/bits/xtitypes.h /usr/include/bits
5 ARG_MAX
  在我的機器上編譯時,提示ARG_MAX未定義,可以這麼修改。 
  在apue.2e/include/apue.h中添加一行:
  #define ARG_MAX 4096
  打開apue.2e/threadctl/getenv1.c 和apue.2e/threadctl/getenv3.c,添加一行:
  #include "apue.h" 
6 修改腳本文件systype.sh 的權限,給當前用戶及其所在組和其他組添加可執行權限。(有的不需要這一步) 
  返回apue.2e 目錄,執行make 命令。 
  把頭文件apue.h放到/usr/include/中,注意要以root用戶操作以下命令(加 sudo )
  可通過pwd查看apue.h的路徑
  cp ~/apue.2e/include/apue.h /usr/include
  cp ~/apue.2e/lib/libapue.a /usr/lib
6 編譯運行程序 

gcc 源程序.c -o 可執行程序名 -lapue 
或者gcc 源程序.c -o 可執行程序名 /usr/lib/libapue.a

或者在apue目錄下,gcc 源程序.c -o 可執行程序名  lib/libapue.a

另外,源碼路徑不要太深,目錄名不要有空格和太長
之前就因爲路徑名中有空格並很長,而編譯出錯no such file
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章