设为首页 加入收藏

TOP

《UNIX 环境高级编程》源代码在Linux环境运行方法
2014-11-24 08:39:37 来源: 作者: 【 】 浏览:0
Tags:UNIX 环境 高级 编程 源代码 Linux 运行 方法

以下是在网上找到的修改教程,感谢原作者,按以下步骤尝试一遍就通了,文章后记录尝试过程中的一些经验,算是防止健忘吧。


UNIX 环境高级每个历程中,都会有这样一行:
#include "apue.h"
这个头文件是作者把把每个例中常用的标准头文件,一些常用的出错处理函数(err_**()之类的函数)和一些常用的宏定义给整理在一个头文件中。这个可以省去在每个例中录入较多的重复代码,这样可以减少每个例的长度。给读者带来了不少麻烦。下面给出一种代码的编译方法。



4、拷贝apue2e_src/apue.2e/include/apue.h和apue2e_src/apue.2e/lib/libapue.a


到你的代码目录。


5、使用gcc -o hello hello.c libapue.a来编译你的代码


——————————————————————————————


照着做,然后make一下,最后报错,大概原因是找不到nawk命令。貌似linux下没有这命令。查到这命令出现在apue.2e/std/linux.mk文件中,试着把nawk换成gawk,再make clean一下,重新make,编译通过了。


我使用下面命令编译源程序:


gcc -o myls ls1.c -I../include ../lib/libapue.a


——————————————————————————————


gawk命令:


gawk GNU awk )工具是一种模式扫描和处理语言,它搜索一个或多个文件,以查看这些文件中是否存在匹配指定模式的记录(通常是文本)。每次发现时,它通过执行动作的方式处理文本。使用 gawk 可以生成报告或者过滤文本, gawk 的很多结构来自 C 语言。


Gawk 工具是 UNIX awk GNU 版。为了方便起见,很多 linux 系统将 /bin/awk 链接到 /bin/gawk ,这样用户可以使用两者中的任何一个来运行程序。


/////////////////////////////////////////////////////////////////////////////////////////////////////////


1.在第二个步骤中要apue.2e中修改Make.defines.linux,但一开始找不到这个文件。原因很简单:找错代码了...重下个。


2.第四个步骤中拷贝 /apue.2e/include/apue.h和/apue.2e/lib/libapue.a到你的代码目录。就可以解决找不到源函数的问题。其中/apue.2e下的一大堆fig*就是书中的示例代码。fig1.3是第一个源码。


3.在执行#gcc -o test1 fig1.3 libapue.a 编译时会出现File format not recognized:文件类型显示不正确的错误。只要修改fig1.3名字就OK。


执行命令:#cp fig1.3 sample13.c


#gcc -o test1 sample13.c libapue.a 就编译成功了!


UNIX环境高级编程中文第二版PDF高清版 http://www.linuxidc.net/thread-2063-1-1.html


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android 开发人员必须掌握的 10 .. 下一篇移植Linux内核平台相关之 中断

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·【C语言】动态内存管 (2025-12-27 06:23:20)
·C语言中的内存管理 - (2025-12-27 06:23:16)
·C语言指南:C语言内 (2025-12-27 06:23:14)
·Redis on AWS:Elast (2025-12-27 04:19:30)
·在 Spring Boot 项目 (2025-12-27 04:19:27)