在OS X 10.11 中使用 "apue.h" (3rd Edition)

在蘋果 OS X 10.11 El Capitan 中使用《UNIX環境高級編程--第三版》中提供的頭文件 apue.h 。
編程

make apue.3e


這裏我買的是第三版的書,和第二版不一樣,不用改工做路徑等信息。正如在readme中說到的,在OS X上進入目錄直接make便可。
api

修改apue.h


咱們須要在apue.h的最後部分的xcode

#endif /* _APUE_H */

前面加上一句:操作系統

#include "error.c"

最終是這樣的:code

apue_h

關於/usr/include/


首先在OS X中,直接打開目錄 /usr/include/,會發現系統找不到目錄,解決方法是安裝 command line tools,若是你安裝了Xcode,能夠在Xcode中進行安裝,可是Xcode那麼大,下載起來很麻煩的,咱們能夠採用這個方法:it

直接在終端中執行io

xcode-select --install

成功安裝以後就能夠看到這個目錄了:
ls
編譯

無權限修改/usr/include/


咱們在make以後,就要把 apue.3e/include/ 中的 apue.hapue.3e/lib/ 中的 error.c 拷貝到 /usr/include/ 目錄中,可是會發如今OS X 10.11 中是 Permission Deniedgcc

是由於OS X 在 El Capitan 中開啓了一個叫 SIP 的操做系統保護機制,對於高級的OS X 使用者來講,這個功能是能夠關閉的。select

解決方案: 重啓 Command + R, 進入終端輸入

csrutil disable

再開機以後就能夠進行復制的操做了:

cp include/apue.h /usr/include/apue.h
cp lib/error.c /usr/include/error.c

結束


通過上面的操做以後,成功編譯書中的第一個例子程序:

gcc

搞定!

相關文章
相關標籤/搜索