【问题标题】:working code for Advanced Programming in the UNIX Environment 2ed preferably on Ubuntu/gcc4UNIX 环境中高级编程的工作代码 2ed 最好在 Ubuntu/gcc4 上
【发布时间】:2011-05-03 07:47:47
【问题描述】:

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

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

谁能指点我获取 APUE 2ed 的编译代码,最好是在 Ubuntu/gcc4 上。

【问题讨论】:

    标签: linux unix operating-system systems-programming


    【解决方案1】:

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

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

    【讨论】:

    • 你能解释一下这个过程吗?你在 Make.defines.linux 中编辑了什么?
    • 我想我只是将 WKDIR 更改为指向我解压缩源代码的位置,但我无法确定。也可以试试 Jacinda 链接的 github 存储库。
    • 你试图在什么操作系统上编译?
    【解决方案2】:

    rotkas 有一个 github 存储库,其中包含经过修改以使其在现代系统上编译的代码。它在 OSX 10.7 和 Ubuntu 10.04 上对我有用。不过最近不需要它。

    https://github.com/roktas/apue2e

    【讨论】:

      【解决方案3】:

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

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

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

      如果有人有同样的问题可以去this link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-14
        • 1970-01-01
        • 2015-12-16
        • 2010-09-25
        • 2010-10-27
        • 2019-06-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多