运行apue (unix 环境高级编程)第一个例子

拿到APUE第三版,大家肯定都是想验证书上的代码,用调试代码的过程来学习本书。但是Linux不像Windows,linux是一个free(自由)软件,free软件带来的问题就是运行一个小小的程序都要折腾半天。现在把运行第一个程序的过程记录下来,以供后来查阅。

第一步,当然是下载书中的源码,省的自己费尽的敲,下载的是第三版,apue.3e,这里不得不吐槽一下,里面的代码组织很乱,不是按照章节列出的,不知是不是我下载的问题,还是作者故意为之。

第二步,apue.3e文件夹里有makefile文件,肯定要执行make命令了,可惜功力有限,目前看不懂这些makefile的功能,需要恶补一下makefile的知识了。

第三步,意料之中的编译不通过,错误提示:can,t find -lbsd,解决办法是添加libbsd.a的静态链接库。

第四步,运行apt-get update,然后apt-get install libbsd-dev,在运行apt-get update过程中,可能会遇到更新不成功的情况,一般是更新软件服务器的问题,只能找个比较好的ubuntu版本了,版本中设置了比较好用的服务器,否则自己找服务器也是苦逼的事情。

第五步,上述执行成功后,再make,OK。

第六步,将apue.h 拷贝到/usr/include/ 将./lib/libapue.a 拷贝到/usr/local/lib/ 为什么要将libapue.a移到/usr/local/lib中呢?原因是libapue.a是apue.h头文件中包含的所有函数及宏定义的具体实现,是一个静态链接库。

第七步,进入/apue.3e/intro,删除原来的ls1,然后编译ls1.c,然后就是十有八九的报错,undefined reference to `err_quit' undefined reference to `err_sys' ,真是苦逼,处处是坑的感觉。

第七步,/usr/include 下新建一个名为myerr.h的文件,文件内容我上传到csdn中

第八步,再编译ls1.c,终于成功,可以运行./ls1 /home,可以看到打印出目录里的文件了。

这些磕磕绊绊的过程确实和Windows下编程完全不是一个感觉,需要对Linux的系统及命令非常熟悉。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值