1. 先去那個**downlowd apue 的tar.gz包,然後解壓至電腦中的某個目錄,比如我的是在/home/user/下,然後進入解壓目錄apue.2e,修改make.defines.
linux
中的wkdir=/home/***/apue.2e,為wkdir=/home/user/apue.2e,這就是我們將要make的工作目錄(存放apue.2e的目錄),然後再進入std目錄,用vi開啟linux.mk,將裡面的nawk全部改為awk,可以使用這個
命令:1.$s/nawk/awk/g (注意前面有冒號)。
2. 在apue.2e/include/apue.h中新增一行:
#define arg_max 4096
3.開啟apue.2e/threadctl/getenv3.c和getenv1.c,新增一行:#include "apue.h"。
若遇到錯誤:
/usr/include/i386-linux-gnu/bits/timex.h:31:7: error: expected 『:』, 『,』, 『;』, 『}』 or 『__attribute__』 before 『.』 token。
則:修改這個apue.2e/ipp/ipp.h檔案中的巨集名稱,例如改為status。
然後將apue.2e/ipp/printd.c中977行的 hp->status 改為hp->status
4.編譯通過。
下面我們把apue的標頭檔案和庫檔案放入系統:
把頭檔案apue.h放到/usr/include/中,注意要以root使用者操作以下命令
cp ~/apue.2e/include/apue.h /usr/include
cp ~/apue.2e/lib/libapue.a /usr/lib/
5. 編譯執行程式
gcc 源程式.c -o 可執行程式名 -lapue
注意 :若-lapue 寫在了源程式的前面會出現錯誤 eg. gcc ls1.c -o ls1 -lapue
因為.a在鏈結的時候,必須放在檔案之後
.so在鏈結的時候,對位置沒有要求,前後都可以
unix環境高階程式設計
unix 日曆時間 自1970 年1 月1 日00 00 00 以來的國際標準時間 utc 程序時間 cpu 時間 時鐘時間 程序執行時間的總量。使用者cpu 時間 執行使用者指令時間量。系統cpu 時間 執行核心所經歷時間。命令 time 第三章至第七章 原子操作 任何乙個要求多於1 個函式呼叫的...
unix環境高階程式設計
檔案描述符file descriptor通常是乙個小的非負整數,核心用以標識乙個特定程序正在訪問的檔案。當核心開啟乙個現有檔案或建立乙個新檔案時,它都返回乙個檔案描述符。在讀寫檔案時,可以私用這個檔案描述符。按管理,每當執行乙個新程式時,所有的shell都為其開啟了3個標準檔案描述符 標準輸入,標準...
UNIX環境高階程式設計
本書是被譽為unix程式設計 聖經 的advanced programming in the unix environment一書的更新版。在本書第1版出版後的十幾年中,unix行業已經有了巨大的變化,特別是影響unix程式設計介面的有關標準變化很大。本書在保持了前一版風格的基礎上,根據最新的標準對...