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

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

    

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

时间: 2024-08-11 02:48:15

APUE 3.0 源码例程编译问题解决 sys_error sys_quit cannot find -lbsd的相关文章

[Android编译(二)] 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机

1 前言 经过一周的奋战,终于从谷歌官网上下载最新的android 6.0.1_r62源码,编译成功,并成功的刷入nexus6p,接着root完毕,现写下这篇博客记录一下实践过程. 2 简介 自己下载android系统源码,修改定制,然后编译刷入安卓手机,想想还有点小激动呢.简单点说一句话--定制我们自己的MIUI,这就是android的魅力,这篇博客博主就来教大家实现自己的定制系统. 首先,要明白下面的基础知识: (1) 什么是aosp? aosp就是android open source p

nginx-1.8.0源码包编译安装

nginx源码包编译安装 1.nginx简介 Nginx ("engine x") 是一个高性能的HTTP和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行. 2.安装nginx时必须先安装相应的编译工具 [[email protected] ~]# yum -y install gcc gcc-c++ autoconf autom

【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/51592930 手机的两种模式 : 在下面有详细的图片示例; -- Recovery 模式 : 音量键增加 + 电源键, 长按上述组合键, 看到 "MI" 的 LOGO 后即进入 Recovery 模式; -- Fastboot 模式 : 音量键减小 + 电源键, 长按上述组合键, 看到 "FASTBOOT" 后, 即 进入 FA

Android6.0源码下载编译刷入真机

编译环境是Ubuntu12.04.手机nexus 5,编译安卓6.0.1源码并烧录到真机. 源码用的是科大的镜像:http://mirrors.ustc.edu.cn/aosp-monthly/,下载完之后会有一个aosp-latest.tar文件,然后新建一个仓库,把它解压到你的仓库里.这里下载会需要点时间. 然后repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b 你的版本,比如现在我们编译6.0.1的版本,就直接r

在Ubuntu Server14.04上编译Android6.0源码

此前编译过Android4.4的源码,但是现在Android都到了7.0的版本,不禁让我感叹Google的步伐真心难跟上,趁这周周末时间比较充裕,于是在过去的24小时里,毅然花了9个小时编译了一把Android6.0的源码,但是昨天编译完之后已经很晚了,没来得及记录编译的步骤,今天才慢悠悠地来记录一下我在Ubuntu Server14.04上编译Android6.0源码的步骤.好了,废话不多说,我们开始吧! 步骤一: 安装Ubuntu系统.我们既可以通过虚拟机的方式安装Ubuntu,也可以直接在

Mac上编译并运行Android5.0源码

下载.配置环境.build和运行参考的都是Android Source提供的文档,包括:Initializing a Build Environment,Downloading the Source和Building the System. 我是在OSX 10.10.3上编译的AOSP,记录一下中途碰到的各种问题. 下载 AOSP需要FQ,而且经常会断,还好是断点续传,坚持个两三天怎么也能下下来. case sensitive system 我在Mac上对file system只会用Disk U

[Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程

本文转载自:[Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程 1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6.0的源码编译出来了,各种配置,各种error,各种爬坑,特写此博客记录爬坑经历.先上图,Ubuntu上编译完后成功运行模拟器,如图: 2 编译环境 UbuntuKylin 16.04 LTS Android 6.0_r1 Open JDK 7 3 准备工作 (1) 下载android 6.0源码.

Android # 4.0.x(1-3) 源码 下载 编译

Android 4.0源码下载方法:repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1 官方下载页面:http://source.android.com/source/downloading.html Android SDK 4.0官方下载页面:http://developer.android.com/sdk/android-4.0.html android 4.0.3最新源码下载

Ubuntu 下载编译 Android5.0 源码

1.安装ubuntu 编译Android 5.0 需要ubuntu 64位的操作系统,在 http://mirrors.ustc.edu.cn/ubuntu-releases/14.10/ 下载Ubuntu 14.10 64 位版本. 提示: 1.建议下载14.10,不要下载14.04,在安装编译需要的软件时,各种依赖问题,很难麻烦 2.ubuntu 的磁盘空间需要给大一点,在创建虚拟机的时候,第一次改50g编译一半提示磁盘空间不够,给到100g就差不多了 2.安装openjdk-7-jdk A