• 编译例程文件出现下面错误

    

    提示找不到apue.h err_quit err_quit函数,对于apue.h可在编译时指定路径:-Iinclude,或者直接将文件拷贝至当前的源代码目录下, 对于 err_quit err_quit有两种方法:

     1、直接将error.c文件放在源代码目录下,在自己的代码中包含进来,直接进行编译。(比较麻烦,我们采用下面的一种)

     2、编译时指定库文件目录,例如-Llib ,其中lib为具体目录,同时还需指定需要链接的库文件libapue.a,该文件需要按照下面的步骤进行make生成。

  • 首先进入apue.3e文件夹中,vim README文件,告诉我们直接进行make,在终端输入$make 出现下面错误:

    cannot find bsd 发现缺少libbsd.so库,上网进行搜索$sudo apt-cache search libbsd-dev (bsd是库名),发现库存在,然后

    $sudo apt-get install libbsd-dev 进行安装,然后$make clean ; make进行编译,编译后可以发现在lib目录下多了个目标文件

    libapue.a

  • 然后就可以进行编译连接文件

    以下是正确的做法:

    

    编译成功。

    注意lib/libapue.a必须放在.c文件的后面否则会出现下面问题:

    

    在链接libapue.a时出现错误。

  如果每次指定都嫌麻烦可以用alias进行指定:

      $mylib='-I'$HOME'/apue.3e/include -L'$HOME'/apue.3e/lib '$HOME'/apue.3e/lib/libapue.a -o output'

      $gg mysource.c $mylib

参考文档:http://blog.csdn.net/mzwang123/article/details/6702889    

     http://www.chinaunix.net/old_jh/4/906787.html

posted on 2014-11-16 22:23  阑珊寻梦  阅读(869)  评论(0编辑  收藏  举报