我想快速修复项目中的一个.so库,只重新编译该库并替换原始库是否安全?还是必须重建和重新安装整个项目?还是要看情况而定?
我想快速修复项目中的一个.so库,只重新编译该库并替换原始库是否安全?还是必须重建和重新安装整个项目?还是要看情况而定?
例如,
生产发布的经验法则是:如果您没有有意识地注意到您正在维护二进制兼容性,或不确定什么是二进制兼容性,则应重新编译。
使用动态库的目的就是这样:如果库中的某些内容需要更新,那么只需更新库,使用它的程序无需更改。如果您要更改的函数的签名不变且实现相同,则通常情况下这将是可以接受的。
当然,总会有一些边缘情况,即程序依赖于某个函数的未记录副作用,然后更改该函数的实现可能会改变副作用并破坏程序;但这就是生活。
这要看情况而定。
不过,我假设你使用的是与其他代码相同的源代码和编译器,如果你只在一个.cpp
文件中进行了更改,那么就没问题。
但是,如果你在头文件中更改接口(共享库和系统其他部分之间的接口),那就不行。