码迷,mamicode.com
首页 > 其他好文 > 详细

APUE 3.0 源码例程编译问题解决 sys_error sys_quit cannot find -lbsd

时间:2014-11-16 22:55:18      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:blog   http   ar   sp   文件   2014   art   问题   log   

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

    bubuko.com,布布扣

    提示找不到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

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

    以下是正确的做法:

    bubuko.com,布布扣

    编译成功。

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

    bubuko.com,布布扣

    在链接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

APUE 3.0 源码例程编译问题解决 sys_error sys_quit cannot find -lbsd

标签:blog   http   ar   sp   文件   2014   art   问题   log   

原文地址:http://www.cnblogs.com/ltfbk/p/4102559.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!