2013-10-12 37 views
0

我已经下载了boost,它是成千上万个文件的海量目录。我有gcc 3.4.5 - 一个旧版本,与现在发布的版本比较,但它与我一直在使用的旧程序一起运行。我正在考虑通过安装boost来让我的程序更具优势,特别是shared_ptr thingy似乎是一个很好的补充。我的问题是安装boost可能会导致我的程序不再运行,或者boost库文件是完全独立的对象吗?安装boost会不会搞乱我的程序?

+0

我也有同样的问题。我试图下载AMD-64位机器的升级,但安装失败。我无法将其移植到64位机器上。所以我忘了它。 – Juniar

+3

那个版本不老,它是古代*。你应该真的更新你的编译器。 – GManNickG

+0

不要关注'boost :: shared_ptr'并直接转到'std :: shared_ptr'。由于无论如何您都会进行源代码重写,为什么选择较旧的非标准替代方案? 3.x在这一点上是古老的。 –

回答

0

如果我理解了正确的问题,并忽略了编译器版本问题,答案是肯定的。不是仅标题的Boost库通常是作为一组动态库(即根据平台设置的一组.dll,.so或.dylib文件)开箱即用的。

建筑及安装增压的新版本可因此搞乱在下列情况下您现有安装的程序:

  • 如果您已经安装在系统上的程序,对一些现有版本的链接在运行时无头Boost库

  • ,如果新的版本已经有界面的改变或细微的变化实施

那么你现有的程序可能会被你安装的较新的boost库弄乱了(无法运行或微妙的错误,取决于更精确的情况细节)。

0

我不完全理解你的问题。你在谈论分发二进制文件吗?您可以静态和动态链接增强。如果你静态链接它们,你的二进制文件的大小会变得更大一些,但是你并不依赖于boost系统库。这是使用Windows执行此操作的典型方法。在基于Linux的系统中,boost通常与系统库动态链接,并且通常非常可靠。然而,像文件系统或程序选项这样的一些模块记录了不兼容的API更改。

或者你在谈论与古代编译器版本的兼容性吗? Boost与这样一个旧的GCC不是100%兼容,但核心功能应该可以工作。

相关问题