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

熱點內容
伺服器如何不休眠 瀏覽:800
微機原理及介面技術編程 瀏覽:204
解壓迷你游戲機手柄 瀏覽:553
androidrtsp框架 瀏覽:545
阿里女程序員內網徵婚 瀏覽:78
比例閥放大器接plc編程 瀏覽:852
java表示二進制 瀏覽:394
數控銑床外輪廓編程 瀏覽:90
pdftomp4 瀏覽:821
基於單片機的直流電機控制系統設計 瀏覽:879
微信程序APP怎怎麼注冊 瀏覽:122
java日歷課程設計 瀏覽:455
pythonrequests假死 瀏覽:870
原生安卓怎麼用nfc模擬卡 瀏覽:956
施耐德串口伺服器是什麼 瀏覽:503
小程序模板不給源碼靠譜嗎 瀏覽:981
程序員噴蘋果 瀏覽:494
手機裡面照片文件夾字母怎麼寫的 瀏覽:258
php中實現翻譯功能用哪個函數 瀏覽:507
病毒加密文件恢復 瀏覽:120