`

linux下《UNIX环境高级编程》(apue2)源码编译出错的处理方法

 
阅读更多

首先需要make一次源代码

编辑源码解压生成的apue.2e文件夹下的Make.defines.linux

修改WKDIR=/home/var/apue.2e为你的apue.2e目录,比如我的apue源码解压在/home/biye,那我就改为:

WKDIR=/home/biye/apue.2e

然后进入apue.2e/std 目录,编辑linux.mk。修改里面所有的nawk为awk。

最后返回apue.2e目录,执行make命令。

接下来就是编译书中出现的各种实例了:

以编译file文件夹下的ls1.c为例,以下是编译源码时的错误提示跟解决方法(假定你的工作目录跟我的一样,为/home/biye/apue.2e)

错误提示1:

ls1.c:1:19: apue.h: No such file or directory
ls1.c: In function `main':
ls1.c:13: error: `NULL' undeclared (first use in this function)
ls1.c:13: error: (Each undeclared identifier is reported only once
ls1.c:13: error: for each function it appears in.)

解决办法:

拷贝apue.h到系统默认头文件目录中

$cp /home/biye/apue.2e/include/apue.h /usr/include

错误提示2:

/tmp/ccBBopm0.o(.text+0x2b): In function `main':
: undefined reference to `err_quit'
/tmp/ccBBopm0.o(.text+0x5f): In function `main':
: undefined reference to `err_sys'
collect2: ld returned 1 exit status

解决办法:

err_quit跟err_sys是作者自己定义的错误处理函数,需要单独定义头文件

在/usr/include 下新建一个名为myerr.h的文件

拷贝lib/error.c的内容到myerr.h(此头文件在原书的附录B中),然后保存,退出。

再次编辑ls1.c文件,在包含文件内加入#include"myerr.h"

重新编译通过后,执行./a.out /home/biye,结果如下:

分享到:
评论

相关推荐

    Unix环境高级编程apue.h文件及解决方案

    在Unix系统环境中,进行高级编程时,我们经常会接触到一些特定的头文件,这些头文件提供了系统调用和库函数的接口...因此,对于任何想要在Unix环境下从事高级编程工作的人员来说,理解和应用apue.h都是非常重要的一步。

    unix环境高级编程apue.h

    Unix环境高级编程内附源代码,apue.h,放到/usr/include下边即可

    UNIX环境高级编程(APUE)

    UNIX环境高级编程(APUE),linux圣经级教程。

    Unix环境高级编程apue.h

    《Unix环境高级编程》第二版这本书的要用到的apue.h文件。

    APUE(UNIX环境高级编程)

    本书的前15章着重于理论知识的阐述,主要内容包括UNIX文件和目录、进程环境、进程控制、进程间通信以及各种I/O。在此基础上,分别按章介绍了多个应用实例,包括如何创建数据库函数库,PostScript 打印机驱动程序,...

    UNIX环境高级编程源码 APUE2E源码

    总之,APUE2E的源码是学习UNIX环境高级编程的宝贵资料,它提供了大量实战案例,可以帮助你从理论到实践,全面掌握UNIX编程的核心技术。无论是初学者还是经验丰富的开发者,都可以从中获益匪浅。

    apue UNIX环境高级编程

    通过结合阅读《UNIX环境高级编程》和使用`apue.h`,你可以更好地掌握UNIX系统编程的精髓,这对于开发高效、稳定的UNIX/Linux应用程序至关重要。 总之,`apue.h`是《UNIX环境高级编程》一书中用于实践的重要资源,它...

    Unix环境高级编程(apue)源代码

    《Unix环境高级编程》(Advanced Programming in the Unix Environment, 简称APUE) 是一本经典的操作系统编程书籍,由W. Richard Stevens撰写,旨在帮助程序员深入理解和掌握在Unix系统中进行系统级编程的技术和方法...

    apue.h(Unix环境高级编程里的头文件)

    Unix环境高级编程里用到的头文件...

    APUE Unix环境高级编程 第二版 pdf

    APUE Unix环境高级编程 第二版 pdf版 无需多说,大师经典之作

    unix环境高级编程第三版 英文版

    《Unix环境高级编程》(Advanced Programming in the UNIX Environment, 简称APUE) 是一本经典的技术书籍,尤其对于深入理解和开发Unix系统来说是不可或缺的资源。英文第三版更是汇集了作者多年的实践经验与深入的...

    Unix环境高级编程中英文版包括源代码

    《Unix环境高级编程》是一本深受程序员和系统管理员喜爱的经典之作,主要涵盖了在Unix操作系统环境下进行高级编程的各种技术和方法。这本书分为多个章节,详细讲解了Unix系统接口、进程管理、文件系统、网络通信等...

    UNIX环境高级编程(APUE)V3

    UNIX环境高级编程(APUE)V3 UNIX环境高级编程(APUE)V3 UNIX环境高级编程(APUE)V3

    《unix环境高级编程》源码 apue源码

    《Unix环境高级编程》(Advanced Programming in the Unix Environment, 简称APUE) 是一本经典的操作系统编程书籍,由Stephen R. Johnson所著。这本书深入讲解了在Unix系统上进行高级程序设计的方法,涵盖了系统调用...

    《Unix环境高级编程(APUE)

    《Unix环境高级编程(APUE) 正版pdf 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...

    UNIX环境高级编程 第三版 随书代码

    《UNIX环境高级编程》第三版是一本经典的UNIX系统编程指南,涵盖了广泛的UNIX系统接口和编程技术。随书附带的代码库"apue.3e"是作者为书中各章节精心设计的实例,旨在帮助读者深入理解并实践UNIX编程的核心概念。 ...

    unix高级环境编程第3版英文版高清PDF(含源码)

    《Unix高级环境编程》第三版是一本深入探讨Unix系统编程的经典著作,对于任何希望在Unix或类Unix系统上进行高级程序开发的工程师来说,都是一本不可或缺的参考书。本书涵盖了Unix系统接口、进程管理、文件I/O、信号...

    unix环境编程中文第三版pdf+文中源码

    《UNIX环境高级编程》中文第三版是一本深受程序员和系统管理员喜爱的经典著作,它深入浅出地介绍了在UNIX操作系统环境下进行程序开发的各种技术与实践。这本书涵盖了从基本的文件I/O到复杂的进程间通信,从信号处理...

Global site tag (gtag.js) - Google Analytics