美文网首页UNIX环境高级编程
UNIX环境高级编程(第三版)头文件"apue.h&q

UNIX环境高级编程(第三版)头文件"apue.h&q

作者: Allenkevin | 来源:发表于2017-04-20 20:01 被阅读330次

    初次学UNIX环境高级编程(第三版)都会遇到头文件"apue.h"怎么添加的问题,这里说下从下载源码到编译通过的整个过程。当然在编译中会遇到各种error,本人也踩了好几个坑,好在都解决了。

    下载源码及解压

    先新建一个自己准备存放源码的目录,然后下载

    cd /home/
    mkdir learnApue
    cd learnApue
    wget http://www.apuebook.com/src.tar.gz
    tar -zxvf src.tar.gz
    

    解压后的文件在目录"aupe.3e"下。

    头文件配置

    经过上面的步骤,当前所在目录应该是"/home/learnApue/"

    cd ./src.3e/apue.3e
    cp ./include/apue.h /usr/include/
    cp ./lib/error.c /usr/include/
    

    编辑"/usr/include/apue.h"

    vim /usr/include/apue.h
    

    光标移动到文件最后一行"#endif"的前面,然后添加如下代码

    #include "error.c"
    

    保存退出

    make报错及其解决方案

    经过上面的操作,然后就可以编译了,这时你所在目录应该是"/home/learnApue/src.3e/apue.3e/"

    make
    

    正常情况下都会报error,下面是我遇到的error

    error类型1
    QQ截图20170420185326.png

    根据错误提示,systype.sh无法执行,我的方法是更改权限然后再编译

    chmod 755 systype.sh
    make
    
    error类型2
    QQ截图20170420190205.png
    chmod 755 ./advio/fixup.awk
    make
    

    继续更改权限,只要是执行权限问题,都可以更改权限后再编译

    error类型3

    下面的这个错误我没有碰到,来自于网友的报错,这里给出关键报错信息

    /usr/bin/ld: cannot find -lbsd
    ...
    make: ***[all] Error 1
    

    根据这个error提示,应该是缺少一个库,解决方案如下。

    apt-get install libbsd-dev
    make
    

    要说明的是我是roor权限,不是roor权限的在上一条命令前加sudo,再编译。
    希望对各位正在使用UNIX环境高级编程一书的同行们有帮助,有错误还请指出。

    相关文章

      网友评论

      • 6ddcb26983f2:我看不太懂书中对err_sys这类函数的实现,不知道有没有人和我一样
        Allenkevin:不好意思,信息回复的有点迟,这本书我看的很早了,不太记得你说的err_sys了,能给出具体说明吗,或者是书的具体章节。
      • 严申_SDNer:我在看这书的时候看到很多例子中引用了err_sys、err_quit等函数,也是作者自己定义的,并在error.c中实现,而error.c中又include了apue.h,感觉直接简化为在代码前面添加
        ```
        #include "error.c"
        ```
        更合适一点?
        另:第三版代码下载链接http://www.apuebook.com/src.3e.tar.gz

      本文标题:UNIX环境高级编程(第三版)头文件"apue.h&q

      本文链接:https://www.haomeiwen.com/subject/hcolzttx.html