我正在学习 Linux 系统编程,并且正在阅读 W. Richard Stevens 和 Stephen A. Rago 的 APUE 2ed 书。
http://www.apuebook.com/上给出的代码不起作用。未定义的定义,未实现的函数(在附录中给出)
谁能指出我为 APUE 2ed 编译的代码,最好是在 Ubuntu/gcc4 上。
我正在学习 Linux 系统编程,并且正在阅读 W. Richard Stevens 和 Stephen A. Rago 的 APUE 2ed 书。
http://www.apuebook.com/上给出的代码不起作用。未定义的定义,未实现的函数(在附录中给出)
谁能指出我为 APUE 2ed 编译的代码,最好是在 Ubuntu/gcc4 上。
rotkas 有一个 github 存储库,其中包含经过修改以使其在现代系统上编译的代码。它在 OSX 10.7 和 Ubuntu 10.04 上对我有用。不过最近不需要了。
我下载了源代码,然后根据 README 文件编辑了 Make.defines.linux 并将 WKDIR 更改为指向我解压缩源代码的位置。然后我运行 make 并且几乎所有编译的东西都只有几个警告。
但是,threadctl 没有编译,我必须在 getenv1.c 和 getenv3.c 中更改#include <limits.h>
它#include <linux/limits.h>
才能编译(不确定这是否是最好的修复,但它可以工作。)
感谢 Jacinda 为我提供的链接,但我也必须做其他事情
我使用来自 github/roktas 的源代码并使用以下命令来运行程序
gcc -o myls myls.c -I SCADDRESS/include/ -L SCADDRESS/lib/ -lapue
如果有人有同样的问题可以去这个链接。