C Libapr.so文件不';我没有源代码的功能

C Libapr.so文件不';我没有源代码的功能,c,epoll,shared-libraries,apr,C,Epoll,Shared Libraries,Apr,我编译了libAPR源代码并成功运行了Apache提供的所有测试 但是,当我将程序链接到libapr.so时,相同的功能就不存在了 例如,apr\u pollset\u add原语不起作用。它总是返回1(当它应该返回0时),但不起作用(在源代码测试中,它像一个符咒一样工作) 我修改了与该原语相关的APRlib的所有代码,因此它只返回-1。当我运行Apache测试时,它们会呈现预期的行为(return-1),但是当我从调用原语时,它们会再次出现 我几乎可以肯定lib在该函数上只有一个包装器,它总是

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

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

例如,apr\u pollset\u add原语不起作用。它总是返回1(当它应该返回0时),但不起作用(在源代码测试中,它像一个符咒一样工作)

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

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


有什么线索吗?

所以我终于找到了问题所在

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


关于apr\u pollset\u addprimitve,它运行良好。apr调用poll\u ctl时系统返回错误,因为我添加了一个不被接受的常规文件描述符。

是否确实链接了与编译的库完全相同的库?是。删除了旧的。尝试编译,我的程序返回错误,因为它没有找到它们,然后执行“makeinstall”,我的程序再次编译成功。所以我很确定我使用的是新的libs。当然,在makeinstall之前,我做了很多修改^^我的钱会花在你对APR所做的修改中的一个bug上,或者你在程序中忽略了一些东西。很遗憾,我们不知道。听着,我没有修改函数来添加功能。我修改了该函数,使其唯一的代码行为“return-1”,以检查该行为是否在lib中重现(这并没有发生)。我做了修改,因为在APR未修改的情况下,该函数不起作用。