導航:首頁 > 源碼編譯 > 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源碼編譯相關的資料

熱點內容
不能從文件夾看到迅雷 瀏覽:138
編程處理表格有意義嗎 瀏覽:438
java字元串回車換行 瀏覽:155
普通分體空調是什麼壓縮機 瀏覽:824
數控車床牙刀滾花編程實例 瀏覽:944
辦公室pdf 瀏覽:279
自動化測量和編程 瀏覽:588
827編程教學 瀏覽:726
跳轉到文件夾 瀏覽:518
文件夾怎麼解壓並安裝 瀏覽:402
壓縮機維修論壇 瀏覽:8
加密碼的筆記本app 瀏覽:685
伺服器ac是怎麼填 瀏覽:474
編譯原理短語可以是句子嗎 瀏覽:652
電腦版燈塔app怎麼下載 瀏覽:554
我的魂斗羅歸來怎麼安卓轉蘋果 瀏覽:150
iphone怎麼隱藏app內容 瀏覽:954
移動手機怎麼修改登錄密碼app 瀏覽:582
兩點間中點垂直線cad命令 瀏覽:32
dpdk編程開發 瀏覽:978