打算重读APUE

 

突然想起来5.1的时候曾经注册了is-programmer. 于是上来看看,发现好多优美的文章  

譬如 http://sd44.is-programmer.com/categories/6366/posts 这个是APUE的学习笔记。

看着这些高亮代码好舒服的感觉,只是我一向都是心动而不行动,泡妞也是如此。

后来又链接到http://sunxiunan.com/?p=1597  标题是谈如何学习一门新的语言。

 

于是乎我决定重读APUE。好好做做读书笔记。然后第一个就是apue.h的问题,于是乎百度头条

如下:

http://hi.baidu.com/%C2%DE%C0%ED%C7%BF/blog/item/cf6953d549c2ee0ea08bb76f.html

 

 

自己抄的程序可能会出现以下错误:
/tmp/ccmKY9AX.o: In function `main':
myday.c:(.text+0x35): undefined reference to `err_quit'
myday.c:(.text+0x6c): undefined reference to `err_sys'
myday.c:(.text+0xd9): undefined reference to `err_quit'
myday.c:(.text+0x106): undefined reference to `err_sys'
myday.c:(.text+0x13e): undefined reference to `err_sys'
myday.c:(.text+0x182): undefined reference to `err_sys'
collect2: ld 返回 1

这是因为没有包含error.c文件导致的。
可以在书上原文#include "unp.h"下面添一句 
                       #include "../lib/error.c"即可。
apue中也一样,总是找到一个叫做error.c的文件然后include 进去即可。(一般都在lib文件夹里)

 

说明:本文合并转载了2篇文章。

 


转载自:http://blog.chinaunix.net/u1/52350/showart_426726.html

最近学习Linux编程,收获真的很多。以前看都是别人或man告诉你某个命令怎么使用,但现在我才领悟到,是程序的源代码决定了全部。

linux要编程,首先需要安装gcc与其它编程工具与库文件。最简单的方法是进入图形界面的添加删除程序,选上开发工具就可以了。


1.APUE2源代码下载:http://www.apuebook.com/src.tar.gz
2.我保存到了/root下.解压缩:tar -xzvf src.tar.gz
3.cd apue.2e进入apue.2e目录,查看README,告诉我们linux系统只要修改Make.defines.linux再make
4.vi Make.defines.linux 修改WKDIR=/root/apue.2e 就是说工作目录为WKDIR=/root/apue.2e
5.修改/root/apue.2e/std/linux.mk把全部的nawk改为awk.因些linux默认没有nawk
6.make

一个需要注意的地方:
apue编程的例子都有关include "apue.h"的代码,其实apue.h并不是系统自带的,它是作者编写的头文件,源代码在附录B中.因此一个方法是.把刚才生成的 /root/apue.2e/include/apue.h直接复制到/usr/include下.
还有像err_sys的函数也在附录B中.同样的方法是在/usr/include新建一个 my_err.h的文件,把Figure B.3. Error functions that output to standard error内容复制进去.这样按例子编程就只需要在行首添加:#include "my_err.h"就可以了.

Posted by Alex 2011年8月21日 14:59