一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

APUE隨書源代碼編譯

 一葉扁舟 2006-12-27
最近在看apue的第二版,剛才在Linux下把隨書的源代碼編譯了一遍,還是稍微花了點時間,作為備忘把編譯過程記錄下來
隨書的源代碼可從www.上獲得,下載后的解壓得到名為apue.2e的目錄,在我的系統(tǒng)中該目錄的完整路徑為/home/se/apue.2e
接著首先是要閱讀/home/se/apue.2e/README,這是由apue第二版的作者Steve Rago寫的如何編譯隨書代碼的基本指導(dǎo)以及部分自本書第一版以來的更改,主要內(nèi)容如下:
Some source changes needed to be made after the book went out for the first
printing.  I forgot to make corresponding changes in the source tree on the
system used to develop the book.  The changes are summarized below.
1. lib/recvfd.c and sockets/recvfd.c - needed sys/uio.h on Mac OS X
2. lib/sendfd.c and sockets/sendfd.c - needed sys/uio.h on Mac OS X
3. stdio/buf.c - added code for Mac OS X
4. threadctl/suspend.c - changed wait to waitloc to avoid symbol definition
 clash on Solaris
5. include/apue.h - FreeBSD compiles work better if we rely on the default
 system settings.  Solaris needed a different XOPEN_SOURCE definition
 and also a CMSG_LEN definition.
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".  It should figure out the system type and build the source for
that platform automatically.  If you are running on a system other than
FreeBSD, Linux, Mac OS X, or Solaris, you‘ll need to modify the makefiles
to include the settings for your system.  Also, you‘ll probably need to
modify the source code to get it to build on a different operating system.
The example source was compiled and tested using FreeBSD 5.2.1, Linux 2.4.22,
Mac OS X 10.3, and Solaris 9.
For FAQs, updated source code, and the lost chapter, see http://www..
Please direct questions, suggestions, and bug reports to sar@.
 
基本內(nèi)容就是你用的系統(tǒng)如果是FreeBSD,Linux,Mac OS X或是Solaris,那么你只要修改相應(yīng)的Make.defines.*文件(即如果你使用的是Linux,那么你需要修改Make.defines.linux文件的內(nèi)容),將其中的設(shè)置改為你自己系統(tǒng)的設(shè)置然后在apue.2e目錄下運行make就ok了.所有的代碼都在FreeBSD 5.2.1,Linux 2.4.22,Mac OS X 10.3,Solaris 9上編譯通過.
 
總的來說要編譯成功是很簡單的,但總會因為平臺的不同會出現(xiàn)一些錯誤,這時你就要根據(jù)自己系統(tǒng)的配置情況來進行修改了
1.首先粗略的看了一下makefile的內(nèi)容,make首先會執(zhí)行腳本文件systype.sh,判斷所用系統(tǒng)的類型,然后根據(jù)該類型選擇對應(yīng)的Make.defines文件.這里所要做的就是給systype.sh添加執(zhí)行權(quán)限,chmod u+x systype.sh
2.因為我用的是Linux,所以先看Make.defines.linux,需要修改的地方是WKDIR=/home/sar/apue.2e,把WKDIR改為你自己的工作目錄,在我這就是改為WKDIR=/home/se/apue.2e,這個路徑在編譯時尋找"apue.h"頭文件時使用.
3.然后我嘗試性的運行了一次make,果然有問題,在進入std目錄后報錯了,說找不到nawk命令,nawk是new awk,而我的系統(tǒng)上只有awk,這時你有兩種選擇,可以在運行make之前執(zhí)行alias nawk=‘a(chǎn)wk‘,這樣本質(zhì)上是給awk取了個叫nawk的別名,實際上運行的還是awk,另一種方法就是修改WKDIR/std/linux.mk,把第10行和15行中的nawk都改為awk,至于什么是awk和nawk,以及它們的使用方法可以參考我之前收藏的一篇文章http://shoufuban.net/showWeb/0/0/308938.aspx
在這里,awk用來分別從makeconf.awk和makeopt.awk生成conf.c和options.c源文件,注意,在修改了linux.mk或是添加了alias之后要先把之前make失敗時生成的conf.c和options.c刪除,否則會報錯
4.進行了上述的修改后,回到WKDIR,運行make,ok,沒有報錯,編譯成功了
之后,如果你要利用apue的lib,編譯運行自己的代碼,必須在編譯時加上-I/home/se/apue.2e/include選項,在連接時加上-L/home/se/apue.2e/lib source.c /home/se/apue.2e/lib/libapue.a選項,這樣你就可以利用apue提供的想err_sys等函數(shù)了^_^
 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章

    亚洲欧美日韩综合在线成成| 亚洲天堂一区在线播放| 午夜福利直播在线视频| 免费亚洲黄色在线观看| 日本一本不卡免费视频| 日本午夜精品视频在线观看| 伊人久久青草地婷婷综合| 91日韩在线观看你懂的| 清纯少妇被捅到高潮免费观看| 亚洲永久一区二区三区在线| 中文字幕免费观看亚洲视频| 一区二区三区四区亚洲另类| 大香蕉久久精品一区二区字幕| 日韩欧美国产精品自拍| 很黄很污在线免费观看| 国产精品欧美激情在线观看| 日韩一本不卡在线观看| 日韩国产传媒在线精品| 午夜精品一区二区三区国产| 欧美国产日韩变态另类在线看| 丁香七月啪啪激情综合| 亚洲欧美日韩网友自拍| 国产亚洲精品久久久优势| 激情丁香激情五月婷婷| 亚洲熟女乱色一区二区三区| 深夜福利欲求不满的人妻| 精品少妇人妻av免费看| 日本精品视频一二三区| 国产性色精品福利在线观看| 国产亚洲欧美日韩国亚语| 欧美黑人在线精品极品| 国产一区二区三区草莓av| 麻豆欧美精品国产综合久久| 中文字幕人妻日本一区二区 | 91欧美亚洲精品在线观看| 欧美多人疯狂性战派对| 国产精品欧美一区两区| 夫妻性生活一级黄色录像| 一区二区三区欧美高清| 日韩成人午夜福利免费视频| 黄色国产一区二区三区|