1
A
回答
0
有两种回答这个问题:没有和肯定。
如果库只有较小的更新,或者以向后兼容的方式添加了新功能,则不需要执行任何操作。除非你想要使用新的功能,否则你必须修改你的代码并重新编译它。
在另一方面,如果库已经取得了一些变化,是不向后兼容,那么你可能有至少重新链接您的项目。但是,如果您安装了这样一个向后不兼容的库,操作系统可能会保留旧版本,因此您的应用程序可能会使用旧版本,而您不必执行任何操作。
1
只要它是一个共享库,与您的主程序动态链接,不需要,除非您更新了主应用程序和库之间共享的标头。
对象大小可能已被更新,如果你在你的主程序使用静态分配,能够创造奇怪的问题(新对象大小会溢出):(加入成员通常)
int main(int argc, char * argv[])
{
MyClass list[12];
return 0;
}
更改对象大小MyClass的一个动态库将是一个严重的问题!
1
有两个关键字,你应该做进一步读成:源代码兼容性,这意味着你的程序将在更新库后,仍然编译和二进制兼容性,这意味着你的编译程序将仍然运行没有问题更新库后。
大多数主要库(例如glibc
或libpng
)对于长版本范围(通常所有主版本的版本都是二进制兼容的)都保持二进制兼容,并且几乎不会中断源兼容性。
有自动化工具来测试二进制和源代码兼容性(例如this one)。
相关问题
- 1. 当更新静态库时,主应用程序必须重新编译或重新链接?
- 2. 当应用程序更新或重新安装时,user_dim.first_open_timestamp_micros是否更改?
- 3. 重新编译系统应用程序
- 4. 当应用程序部署时,dynos是否重新启动?
- 5. 当文件夹更新时,角度cli防止重新编译
- 6. 当应用程序更新时,NSUserDefaults是否会被擦除?
- 7. 重新编译存储过程时是否还重新编译了依赖性存储过程?
- 8. Web应用程序是否应该自动更新?
- 9. PhoneGap应用程序是否在应用程序更新时重置?
- 10. 更改.NET应用程序设置而不重新编译
- 11. 当对数据库进行AJAX编辑时,是否应该使用新数据立即更新界面
- 12. 当我们重新提交应用程序到App Store时,我们是否应该更改可用日期?
- 13. 更新道具是否应该重新渲染整个组件?
- 14. React应用程序重新加载时,它不应该是
- 15. 重新编译32位库
- 16. 我应该重新编译.NET 4.0的库吗?
- 17. 当重新编译ASP.NET MVC应用程序时,不会考虑对控制器或模型的更新
- 18. Intelij:应用程序运行时重新编译?
- 19. 重新编译应用程序string.xml时出错
- 20. 重新安装OSX后编译应用程序时出错
- 21. 部署Web应用程序时是否应该重新创建容器?
- 22. 当Ad Hoc提供配置文件过期时是否需要重新编译我的应用程序?
- 23. 当我升级第三方jar时,是否必须重新编译我的应用程序?
- 24. 预编译Web应用程序项目的性能优势是否可更新?
- 25. 你应该总是用新的库版本编译?
- 26. 重新编译未更新的文件
- 27. SQLITE数据库是否在应用更新时重置?
- 28. 上传新的ASPX页面是否会强制IIS重新编译该网站?
- 29. Prestashop:SMARTY - 当文件被修改时强制编译/重新编译
- 30. iOS应用程序更新 - 是否可以部分更新.app?
因此,正如你自己总结的那样,在某些情况下,你**必须重新编译。 –