導航:首頁 > 源碼編譯 > apue源碼編譯

apue源碼編譯

發布時間:2022-08-12 05:28:54

① 關於在cygwin中如何使用 apue.h

apue編程的例子都有關include "apue.h"的代碼,其實apue.h並不是系統自帶的,它是作者編寫的頭文件,源代碼在附錄B中.因此一個方法是.把剛才生成的 /root/apue.2e/include/apue.h直接復制到/usr/include下.
還有像err_sys的函數也在附錄B中.同樣的方法是在/usr/include新建一個 my_err.h的文件,把Figure B.3. Error functions that output to standard error內容復制進去.這樣按例子編程就只需要在行首添加:#include "my_err.h"就可以了..

② 如何運行APUE中的代碼

APUE中的代碼不是download下來就可以直接編譯執行的。由於頭文件的問題,需要做相關的設置,修改一下相關的文件。
首先從http://www.apuebook.com/src.tar.gz下載源碼壓縮包,解壓到相應目錄,例如:
mkdir /home/Rockics/src
cd /home/Rockics/src/
wget http://www.apuebook.com/src.tar.gz
tar zxvf src.tar.gz
解壓以後得到文件夾apue.2e。按照以下步驟完成設置,則可以編譯相關代碼:
1.進入相應目錄:cd apue.2e;
2.修改文件Make.defines.linux:將其中的WKDIR 修改為/home/Rockics/src/apue.2e,保存退出;
3.修改文件std/linux.mk:將其中的nawk全部修改為wak,可在vi下使用命令:%s/nawk/awk/g完成;
4.修改文件include/apue.h:在文件倒數第二行(也就是#endif之前)加入:#include "error.c"; 這一行;
5.切換到root賬戶,將include/apue.h還有lib/error.c拷貝一份到/usr/include/下
設置完畢:)
測試:
我運行APUE的第一個程序實驗一下環境是否OK:
APUE的第一個程序是myls.c,文件位於file/ls1.c,試試看其是否編譯通過哈:
[Rockics@localhost apue.2e]$ gcc -o myls -Wall file/ls1.c
很好,沒有任何警告,設置成功。

③ Unix環境高級編程書上的第一個常式如何運行(附代碼)

你這根本是跳著看書,這個apue.h是包含了非常多的頭文件的,在附錄里有,前面也說明了,你跑程序怎麼可以也用這個頭,你根本沒這個文件

④ 本人是小白,請問UNIX書中./a.ou是什麼文件,還有「apue.h「頭文件是自己寫的嗎程序寫在vi里怎麼運行

  1. 關於./a.out

    以C語言為例,linux下假設有test.c文件,gcc編譯後(不加-o)選項默認生成的可執行文件名就是a.out,也就是說a.out文件是一個可執行文件。./a.out表示執行該可執行文件

  2. apue.h是自己寫的,《UNIX環境高級編程》中附錄B(677頁)中有源碼

  3. 假設你用vi編輯了一個test.c文件,計算機是無法直接讀懂該文件的,細說的話要經過預處理、編譯、匯編、鏈接等操作後才生成計算機能讀懂的文件,也就是我剛才說的可執行文件那種。對於C初學者,你需要藉助編譯器gcc:

    $gcc test.c

    執行這個命令後再當前目錄下執行ls,會發現多了一個a.out的可執行文件,然後執行./a.out就可以運行程序了。gcc可以加上-o選項,如:

    $gcc test.c -o test.exe

    -o選項表示指定生成文件的名稱。gcc還有很多選項,深入學習的話可以網路或者gcc -help之類的命令查看

⑤ 在頭文件里定義的函數在編譯時說未定義

void err_sys(const char *, ... );
這樣只是聲明了一下,沒有對其定義,當然會報錯,這個就相當於printf()的函數,只是它自己定義了一個新的,你去stdio.h頭文件里看看printf()怎麼定義的。

⑥ C語言編譯警告

void
main(void);函數被定義多次,這么明顯的錯誤肯定是其他.c文件定義了main函數了
另外你的這種寫法完全不符合c99啊
void
main(void)
應該寫成
int
main(void);或者
int
main(char
*argc,char*
argv[])

⑦ Unix找不到apue.h文件該怎麼辦

書的附錄中有,apue.h ,及其實現,先寫上,引用位置稍微調整一下。
或者你給放到下面的目錄下面去:
頭文件:/usr/local/include
/usr/local/lib,或者/usr/local/lib64(64位庫放這里)
先把實現編譯成靜態庫,ar 很簡單

閱讀全文

與apue源碼編譯相關的資料

熱點內容
美國taboo一共拍了多少?劇集簡介與評價分析 瀏覽:415
基於單片機紅外 瀏覽:118
蛇電影全集大全:探索蛇作為電影主題的多樣性 瀏覽:176
好看站經典電影推薦:觸動心靈的電影珍藏 瀏覽:618
100名程序員 瀏覽:616
換壓縮機電容多少錢 瀏覽:184
甄楚倩拍過哪些電影:甄楚倩的電影作品回顧 瀏覽:543
樓下的房客在哪-探尋鄰里的故事 瀏覽:104
灶門彼方想要活過二十五歲:過好這個人生節點 瀏覽:604
百度雲解壓券怎麼買 瀏覽:832
大偉二娃三棱四猴電影:勇往直前的冒險故事 瀏覽:268
小小家長電影觀後感:家庭價值觀的動人之作 瀏覽:878
無需播放器就可以免費觀看的電影:全方位指南 瀏覽:957
android執行adb命令 瀏覽:723
特定域計算的編譯器優化 瀏覽:30