apt-get编译和手动从源代码编译的区别

我正在尝试手动替换freeradius的一个库。
一方面,我使用apt-get install安装了freeradius。有一个名为"libfoo-2.0.4.so"的库(我们称之为lib(apt))。
另一方面,我使用源代码(来自apt-get source)修改了库"libfoo-2.0.4.so"(我们称之为lib(src))。然后我编译了这些源代码(./configure, make)以获取修改后的lib(src)。(当我测试它时,这个库工作得很好)。

当我尝试手动用lib(src)替换lib(apt)时,freeradius在调用该库时发生段错误。
所以看起来这两个库不兼容。

这可能是由于编译问题吗?(预编译版本与本地编译版本) 还是由于构建选项问题?

谢谢!
附言:我对这些网站还比较新,所以不确定我是否在正确的地方发布了这个问题..

1个回答

当你使用apt-get安装库或任何其他软件包时,它总是稳定的,因此最受推荐,因为它们经过测试,并且开发人员对存储库进行了良好的维护。当你通过编译源代码来安装库或其他软件包时,稳定性较低,有时也会引起问题。
用apt版本的库替换源代码可能不兼容并且会导致问题。
要获取更多信息,请查看Ubuntu

嗨@K.K Patel,谢谢你的回答。我发现这可能是由于不同的构建选项(比如使用./configure)引起的。 你是说即使使用相同的构建选项,库文件也不兼容吗? - yco