我在ubuntu 12.04上编译了一个Linux软件包,该软件包使用boost,在这个系统上我得到了boost 1.46.我试图在另一个系统上运行编译的发行版,但它抱怨找不到libboost_system.so.1.46.1.该系统已安装了Boost 1.49.如何进行编译,以便程序使用存在的引导版本,而不是开发计算机上的特定版本.
解决方法:
您不能期望程序可以与该库的其他版本一起使用.
存在/ different /版本的事实意味着它们是/不相同/.
如前所述,
>静态链接到您的特定版本,或者
>您可以交付共享库(只要将它们放置在应用程序特定的位置并确保在运行时找到它们).顺便说一句,请参见此处的第二个示例:How to compile boost async_client.cpp有关使用自定义库的相关链接器选项(假定在运行时使用相同的位置(rpath)