Sal*_*alo 13 c++ boost cross-compiling dynamic-linking static-linking
我将开始一个新的C++项目,该项目将依赖于一系列库,包括部分Boost库,log4cxx或google日志库 - 并且随着项目的发展,其他项目(我还没有预料到) .
它必须在32位和64位系统上运行,很可能是在一个非常多样化的Linux环境中,我不希望所有必需的库都可用,也不需要su权限.
我的问题是,我应该通过动态或静态链接到所有这些库来构建我的应用程序吗?
笔记:
(1)我知道静态链接在开发过程中可能会很痛苦(编译时间较长,32位和64位交叉编译,依赖链包含所有库等),但在测试过程中更容易 - 只需移动文件即可运行.
(2)另一方面,动态链接接缝在开发阶段更容易 - 编译时间短(不知道如何处理来自我的32位开发环境的64位库的动态链接),没有依赖链的喧嚣.另一方面,新版本的部署可能很难看 - 特别是在需要新库时(参见上述条件,目标机器上没有su权限,也没有这些库可用).
(3)我已阅读有关此主题的相关问题,但无法确定哪种方法最适合我的方案.
结论:
dic*_*oce 11
静态链接有一个糟糕的说唱.这些天我们有巨大的硬盘驱动器,而且管道非常胖.许多支持动态链接的旧观点现在不那么重要了.
另外,有一个很好的理由在Linux上更喜欢静态链接:过多的平台配置使得几乎不可能保证你的可执行文件在没有静态链接的情况下即使只有一小部分可以工作.
我怀疑这不会是一个流行的观点.精细.但是我有11年在Linux上部署应用程序的经验,直到LSB真正起飞并真正扩展它的范围,Linux将继续在部署应用程序时变得更加困难.在此之前,如果您必须在各种平台上运行,请静态链接您的应用程序.
| 归档时间: | 
 | 
| 查看次数: | 4372 次 | 
| 最近记录: |