id="cproIframe_u1916497_1" width="760" height="90" src="http://pos.baidu.com/acom?adn=3&at=231&aurl=&cad=1&ccd=32&cec=UTF-8&cfv=17&ch=0&col=zh-CN&conBW=0&conOP=1&cpa=1&dai=1&dis=0<r=http%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%25E7%259C%258Bunix%25E9%25AB%2598%25E7%25BA%25A7%25E7%25BC%2596%25E7%25A8%258B%25E6%2597%25B6%25E9%2581%2587%25E5%2588%25B0apue.h%25E6%2589%25BE%25E4%25B8%258D%25E5%2588%25B0%25E7%259A%2584%25E9%2597%25AE%25E9%25A2%2598%26tn%3DSE_hldp01010_6r0gix1f<u=http%3A%2F%2Fwww.01happy.com%2Funix-advanced-programming-apue%2F&lu_161=0&lunum=6&n=78000009_cpr&pcs=1325x589&pis=10000x10000&ps=224x2&psr=1366x768&pss=1325x234&qn=8be9425fffb50bbf&rad=&rsi0=760&rsi1=90&rsi5=4&rss0=%23FFFFFF&rss1=%23FFFFFF&rss2=%230000ff&rss3=%23444444&rss4=%23008000&rss5=&rss6=%23e10900&rss7=&scale=&skin=tabcloud_skin_3&stid=5&td_id=1916497&titFF=%E5%AE%8B%E4%BD%93&titFS=12&titTA=left&tn=text_default_760_90&tpr=1435031054268&ts=1&version=2.0&xuanting=0&dtm=BAIDU_DUP2_SETJSONADSLOT&dc=2&di=u1916497&ti=%E7%9C%8Bunix%E9%AB%98%E7%BA%A7%E7%BC%96%E7%A8%8B%E6%97%B6%E9%81%87%E5%88%B0apue.h%E6%89%BE%E4%B8%8D%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98%20-%20%E5%BF%AB%E4%B9%90%E7%BC%96%E7%A8%8B&tt=1435031054237.31.172.172" align="center,center" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true">
一开始看到这本书,刚翻了几页,就觉得对味。按照书中的代码做练习时,编译代码文件提示fatal error: apue.h: No such file or directory。翻看书的附录B,可以看到apue.h的资料,原来作者是为了减少书中示例代码的长度,将很多包含头文件的代码封装到了apue.h这个文件。
下载源码
从unix高级编程书籍官网下载书籍的上的所有源码。
wget http://www.apuebook.com/src.tar.gz
解压这个文件
tar -zxvf src.tar.gz
解压后文件会放在apue.2e目录下,这个目录里包含了书本上的源码,也包含了apue.h和error.c文件。
复制apue.h到/usr/include/下
cp ./apue.2e/include/apue.h /usr/include/
/usr/include/下并没有这个文件,所以放心复制吧。
复制error.c到/usr/include/下
cp ./apue.2e/lib/error.c /usr/include/
这里的文件是error.c,不是error.h,/usr/include/目录下有一个error.h的头文件。
编辑/usr/include/apue.h文件
在文件最后#endif前加上包含error.c的代码:
#include "error.c";
弄完之后重新编译代码文件,OK搞定了。如果需要了解更多信息,可以查看apue.2e目录下的README文档。unix发展到后来延伸出很多分支,在书中也有提及,如果你对自己的系统不了解,可以运行apue.2e目录下的systype.sh,它会告诉你你的系统是什么。
转载请注明:快乐编程 » 看unix高级编程时遇到apue.h找不到的问题