0

我编译了 libAPR 源代码并成功运行了 Apache 提供的所有测试。

但是,当我将程序链接到 libapr.so 时,不存在相同的功能。

例如,apr_pollset_add原语不起作用。它总是返回 1(当它应该返回 0 时)并且不起作用(在源测试中就像一个魅力)。

我修改了与该原语相关的所有 APRlib 代码,因此它只会返回 -1。当我运行 Apache 测试时,它们呈现出预期的行为(返回 -1),但是当我再次从 .so 库调用原语时,它总是返回 1。

我几乎可以肯定,lib 对该函数只有一个包装器,它总是返回 1。

关于发生了什么的任何线索?

4

1 回答 1

1

所以最后我发现了问题。

我的系统中已经安装了 libapr,所以每当我使用 -libapr-1 时,它都会将我的程序链接到之前安装的 libapr 版本。这就是它没有响应我的代码修改的原因。

关于apr_pollset_add primitve,它运行良好。当 apr 调用poll_ctl时,系统会返回错误,因为我添加了一个不被接受的常规文件描述符。

于 2012-12-21T04:29:18.423 回答