UNIX环境中高级编程的工作代码最好是在Ubuntu / gcc4上

时间:2010-11-01 08:43:17

标签: linux unix operating-system systems-programming

我正在学习Linux系统编程,我正在阅读APUE 2的书 W. Richard Stevens和Stephen A. Rago。

http://www.apuebook.com/上给出的代码不起作用。未定义的定义,未实现的功能(在附录中给出)

有人能指出我为APUE 2ed编译代码,最好是在Ubuntu / gcc4上。

3 个答案:

答案 0 :(得分:4)

rotkas有一个github repo,其中包含修改代码,使其在现代系统上进行编译。它在OSX 10.7和Ubuntu 10.04上对我有用。但是最近没有需要它。

https://github.com/roktas/apue2e

答案 1 :(得分:2)

我下载了源代码,然后根据README文件编辑了Make.defines.linux并将WKDIR更改为指向我解压缩源代码的位置。然后我运行make,几乎所有编译的东西只有几个警告。

但是,

threadctl没有编译,我必须在getenv1.c和getenv3.c中将#include <limits.h>更改为#include <linux/limits.h>才能编译(不确定这是否是最好的修复,但是它有效。)

答案 2 :(得分:0)

感谢Jacinda为我提供的链接,但我也必须做其他事情

我使用了github / roktas的源代码并使用以下命令来运行程序

gcc -o myls myls.c -I SCADDRESS/include/ -L SCADDRESS/lib/ -lapue

如果有人遇到同样的问题,可以转到this link