《unix環境高階程式設計》書中原始碼編譯問題解決
《unix環境高階程式設計》書中原始碼編譯問題解決
第一次接觸《unix環境高階程式設計》這本經典書籍,不過在編譯書中提供的原始碼時出現錯誤。最終,還是看編譯錯誤提示解決了這個問題。
我的系統是:linux/Ubuntu 12.04原始碼下載地址:http://www.apuebook.com/src.tar.gz。下載原始碼之後,就是解壓到相關目錄下。比如我解壓到/home/username/目錄下,即/home/username/apue.2e。(注意:username即是你的使用者名稱)。
然後有兩個檔案修改操作:
1.將apue.2e目錄下的檔案Make.defines.linux中的 WKDIR=/home/xxx/apue.2e修改為WKDIR=/home/username/apue.2e。
2.再進入apue.2e目錄下的std目錄,開啟linux.mk,將裡面的nawk全部替換為awk。
檔案移動操作:
把 /home/username/apue.2e/inlcude目錄下的 apue.h檔案和位於 /home/username/apue.2e/lib目錄下的 error.c檔案都複製到 /usr/include目錄下。
還有就是在apue.h檔案的最後一行#endif新增#include “error.c”.
最後進入/home/username/apue.2e目錄下,輸入make即可執行編譯。
出現了兩個問題!
1. apue.2e/ipp/ipp.h 出現巨集定義:#define status u.st
編譯出現錯誤提示:expected ':', ',', ';', '}' or '__attribute__' before '.' token
解決方案:將apue.2e/ipp/ipp.h的巨集定義:#define status u.sth中的status改成Status;然後將同目錄下的printd.c中的977行的i=ntohs(hp->status);中的status改成Status。
2.提示ARG_MAX未定義
解決方案:在apue.2e/include/apue.h中新增一行:#define ARG_MAX 4096;開啟apue.2e/threadctl/getenv1.c和apue.2e/threadctl/getenv3.c,新增一行:#include "apue.h"
注意:先輸入make clean後在輸入make;此時編譯通過。
OK,問題解決。相當於敲開《unix環境高階程式設計》這本書的大門吧!慢慢深入。
轉:http://blog.csdn.net/SunshineDabby/article/details/8723105
相關文章
- 《UNIX環境高階程式設計》apue原始碼Ubuntu下的編譯程式設計原始碼Ubuntu編譯
- unix環境高階程式設計(中)-程式篇程式設計
- 第一篇:《UNIX 環境高階程式設計》編譯環境的搭建程式設計編譯
- UNIX系統程式設計的瑞士軍刀 --《UNIX環境高階程式設計》書評程式設計
- 程式程式設計1 – Unix環境高階程式設計7章讀書筆記程式設計筆記
- 程式程式設計2 – Unix環境高階程式設計8章讀書筆記程式設計筆記
- UNIX環境高階程式設計習題——第二章程式設計
- 程式程式設計3 - UNIX高階環境程式設計第9章讀書筆記程式設計筆記
- UNIX訊號(signal)程式設計 - UNIX高階環境程式設計第10章讀書筆記程式設計筆記
- unix環境高階程式設計(上)-檔案篇程式設計
- unix環境高階程式設計(下)-高階IO和程式間通訊篇程式設計
- UNIX環境高階程式設計——執行緒和fork程式設計執行緒
- 推薦一本技術類書籍:Unix環境高階程式設計程式設計
- Unix環境高階程式設計——開源的標準化努力程式設計
- Unix環境高階程式設計——第一章-UNIX基礎知識程式設計
- 《UNIX環境高階程式設計》(APUE) 筆記第十一章 - 執行緒程式設計筆記執行緒
- 使用pthread庫進行多執行緒程式設計1 - UNIX環境高階程式設計第11章讀書筆記thread執行緒程式設計筆記
- 使用pthread庫進行多執行緒程式設計2 - UNIX高階環境程式設計第12章讀書筆記thread執行緒程式設計筆記
- lnmp環境安裝-原始碼編譯LNMP原始碼編譯
- Ubuntu環境編譯OpenJDK11原始碼Ubuntu編譯JDK原始碼
- grpc-java原始碼環境編譯RPCJava原始碼編譯
- tomcat原始碼編譯和環境搭建Tomcat原始碼編譯
- 解決所有環境問題
- cmake編譯問題解決編譯
- 第一篇:《UNIX 網路程式設計 第二版》編譯環境的搭建程式設計編譯
- 初始化編譯環境 下載原始碼編譯原始碼
- Linux環境PostGIS原始碼編譯安裝Linux原始碼編譯
- openEuler arm 環境原始碼編譯mysql 8.0.37原始碼編譯MySql
- Unix環境程式設計之定時、訊號與中斷程式設計
- 高併發環境下生成序列編碼重複問題分析
- 程式設計師不是在編寫程式碼,而是在解決問題 - LanRaccoon程式設計師
- qgroundcontrol開發環境搭建原始碼編譯開發環境原始碼編譯
- [環境搭建] 透過原始碼編譯安裝 Redis原始碼編譯Redis
- 解決:JPEGImageEncoder編譯問題編譯
- webpack(1)安裝環境與解決環境問題Web
- 【爬坑】.Net編譯環境導致的問題編譯
- Android 原始碼的下載和編譯環境的安裝及編譯Android原始碼編譯
- 探索併發程式設計(七)——分散式環境中併發問題程式設計分散式