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

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

例如,apr_pollset_add原语不起作用。它总是返回1(当它应该返回0时),并且不起作用(在源代码测试中就像一个超级按钮一样)。

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

我几乎可以肯定,lib在该函数上只有一个包装器,始终返回1。

有什么线索吗?

最佳答案

所以最后我找到了问题。

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

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

关于c - Libapr .so文件不具有源代码功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13965527/

10-10 23:59