it took me a long time for making.
- 1. APUE2源代码下载:http://www.apuebook.com/src.tar.gz
- 2. 保存到了/home/lu/ 下.解压缩:tar -xzvf src.tar.gz
- 3. 修改Make.defines.linux文件中WKDIR为实际所存目录,我把apue.2e放在/home/lu/目录下,所以WKDIR=/home/lu/apue.2e;
- 4. stropts.h: 如果出现stropts.h找不到的情况,则下载glibc-2.11,解压缩
cp ./glibc-2.11/streams/stropts.h /usr/include
cp ./glibc-2.11/bits/stropts.h /usr/include/bits
cp ./glibc-2.11/sysdeps/x86_64/bits/xtitypes.h /usr/include/bits
- 5. 打开std目录下的linux.mk,即“vim ./std/linux.mk”将里面的nawk全部改为awk
- 6. 提示ARG_MAX未定义,可以这么修改。
在apue.2e/include/apue.h中添加一行: #define ARG_MAX 4096
打开apue.2e/threadtl/getenv1.c 和apue.2e/threadctl/getenv3.c,添加一行: #include “apue.h”;
- 7. 把 apue.2e/include/apue.h copy 到 /usr/include
把 apue.2e/lib/error.c copy 到 /usr/include
- 8. /usr/include/bits/timex.h:31:7: 错误:expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘.’ token
apue.2e/ipp/ipp.h文件122line: #define status u.st 改成 #define Status u.st
将apue.2e/ipp/printd.c 977 lin:status改成Status。
- 9. make下,在apue.2e/lib/目录下生成所需libapue.a库。
- 10. cp ./apue.2e/lib/libapue.a /usr/lib cp ./apue.2e/lib/libapue.a /usr/lib64
- 11. compile some code: gcc ls1.c-lapue
second edition at 23/01/2013 23:49 after a second time try.
if you type and there are something wrong.
then:
make clean
then
make
apue.2e 源码编译
actually, i used nano for all of these.... shame on me.