如何使我的程序使用最新的boost库

时间:2014-07-17 16:32:57

标签: c++ ubuntu boost cmake

我编译了一个需要libboost-system1.46的C ++程序。我使用的是Ubuntu 14.04,所以我有libboost-system1.54。当我运行该程序时,它说没有找到libboost_filesystem.so.1.46.1。我怎样才能(如果可能的话)使程序与libboost-system1.54一起使用。也许在那里我们指定使用哪个版本。我的想法是正确的吗?

2 个答案:

答案 0 :(得分:2)

您需要针对较新版本的库重新编译。 AFAIK boost库在版本之间不是二进制兼容的,所以很简单。你可以做一些技巧,使用其他版本(符号链接或其他魔法),但它很可能不起作用。

因此,您需要提供所需的版本或更改要求 - 重新编译。

如果您编写程序或构建程序,则只需要在make或编译之前使用所有配置重复整个构建过程。从技术上讲,只需重新链接即可,但是像CMake这样的系统会缓存在此步骤中评估的配置选项,而简单地再次调用make将不起作用。所以我建议重复整个过程。

无论程序是什么,只需重复它就足够了。

答案 1 :(得分:-2)

您可以创建一个符号链接,将libboost-system1.46名称指向libboost-system1.54。

只要您使用的功能的接口没有改变,这将起作用,但这可能不是一个好主意。它可能只是让您的代码进行测试,但永远不适合任何类型的发布软件。

您应该尝试使用较新版本的boost重新编译您的程序。