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

在苹果 OS X 10.11 El Capitan 中使用《UNIX环境高级编程--第三版》中提供的头文件 apue.h 。

make apue.3e


这里我买的是第三版的书,和第二版不同,不用改工作路径等信息。正如在readme中说到的,在OS X上进入目录直接make即可。

修改apue.h


我们需要在apue.h的最后部分的

#endif /* _APUE_H */

前面加上一句:

#include "error.c"

最终是这样的:

apue_h

关于/usr/include/


首先在OS X中,直接打开目录 /usr/include/,会发现系统找不到目录,解决方法是安装 command line tools,如果你安装了Xcode,可以在Xcode中进行安装,但是Xcode那么大,下载起来很麻烦的,我们可以采用这个方法:

直接在终端中执行

xcode-select --install

成功安装之后就可以看到这个目录了:
ls

无权限修改/usr/include/


我们在make之后,就要把 apue.3e/include/ 中的 apue.hapue.3e/lib/ 中的 error.c 拷贝到 /usr/include/ 目录中,但是会发现在OS X 10.11 中是 Permission Denied

是因为OS X 在 El Capitan 中开启了一个叫 SIP 的操作系统保护机制,对于高级的OS X 使用者来说,这个功能是可以关闭的。

解决方案: 重启 Command + R, 进入终端输入

csrutil disable

再开机之后就可以进行复制的操作了:

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

结束


经过上面的操作之后,成功编译书中的第一个例子程序:

gcc

搞定!

原文地址:https://www.cnblogs.com/guoyunzhe/p/6277720.html