日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

APUE 头文件apue.h 解决方法

發(fā)布時間:2023/12/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 APUE 头文件apue.h 解决方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)自http://www.tuicool.com/articles/yU7Rvq

APUE全稱《Advanced Programming in the UNIX Environment》(UNIX環(huán)境高級編程)

書中例子大都使用作者自己寫的頭文件,所以需要解決一下,還好學(xué)習(xí)這本書的前輩還是很多的。所以還是記錄一下解決過程吧,方便以后配置。

APUE源碼下載: http://www.apuebook.com/ (選擇書的版本,然后Source Code)

(一)解壓縮

如這樣的路徑:/home/sincere/work/c/UNIX-C/apue.2e

(二)修改文件

將apue.2e目錄下的文件Make.defines.linux中的 WKDIR后面路徑改為如上路徑

進(jìn)入apue.2e目錄下的std目錄,將linux.mk文件里面的nawk全部替換為awk

(三)排錯

1,沒有stropts.h

catgetmsg.c:2:21: 致命錯誤:stropts.h:沒有那個文件或目錄 編譯中斷。 make[2]: *** [catgetmsg] 錯誤 1 make[2]: 離開目錄“/home/sincere/apue.2e/advio” make[1]: *** [linux] 錯誤 1 make[1]: 離開目錄“/home/sincere/apue.2e” make: *** [all] 錯誤 2

如果出現(xiàn)stropts.h找不到的情況,則下載glibc-2.11,解壓縮
cp ./glibc-2.11/streams/stropts.h /usr/include
cp ./glibc-2.11/bits/stropts.h /usr/include/bits
cp ./glibc-2.11/sysdeps/x86_64/bits/xtitypes.h /usr/include/bits

2. apue.2e/ipp/ipp.h 出現(xiàn)宏定義: #define status u.st

編譯出現(xiàn)錯誤提示: 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。

3. 提示 ARG_MAX 未定義

解決方案: 在apue.2e/include/apue.h中添加一行:#define ARG_MAX 4096;打開apue.2e/threadctl/getenv1.c和apue.2e/threadctl/getenv3.c,添加一行:#include “apue.h”

解決上面的三個問題后,就可以編譯通過了

(四)頭文件和靜態(tài)庫的使用

復(fù)制/apue.2e/include/apue.h和/apue.2e/lib/libapue.a到你的源代碼目錄

然后運(yùn)行

gcc -o hello hello.c libapue.a

OK!問題解決,可以繼續(xù)學(xué)習(xí)APUE了~~

參考文章:

《unix環(huán)境高級編程》書中源代碼編譯問題解決

如何使用APUE源代碼(UNIX高級編程)

UNIX環(huán)境高級編程中的apue.h錯誤

總結(jié)

以上是生活随笔為你收集整理的APUE 头文件apue.h 解决方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。