2012-12-20 17 views
0

我编译了libAPR源并成功运行了Apache提供的所有测试。Libapr .so文件没有源代码的功能

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

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

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

我几乎可以肯定,lib只是一个包装该功能将返回始终1.

任何线索发生了什么?

+0

你确定你正在链接完全相同的库,你编译? –

+0

是的。删除旧的。试图编译,我的程序返回错误,因为它没有找到它们,然后做'安装',我的程序再次成功编译。所以我很确定我正在使用新的库。 – twawpt

+0

当然在做安装之前,我确实做了清洁。 ^^ – twawpt

回答

1

所以最后我发现了这个问题。

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

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

相关问题