C ++链接共享对象lib,包括静态boost lib和动态boost lib

时间:2012-11-20 08:44:24

标签: c++ segmentation-fault shared-libraries static-libraries boost-thread

我目前正在使用API​​从C ++编写应用程序来从相机中抓取图像。此API是一个共享对象,使用静态boost线程lib(v1.40)构建。

在我的应用程序中我也想使用boost线程,但是当我将boost线程(v1.51)动态链接到我的应用程序时,API从动态链接版本调用boost线程函数,我得到了一个分段错误。

有没有办法,也许是一个链接器选项,我可以解决这个问题,以便API无论如何都会使用包含的静态链接版本,或者是使用相同版本解决这个问题的唯一方法?

1 个答案:

答案 0 :(得分:0)

如果导出了图像共享库中的提升符号,那么当您在链接步骤中省略提升库时可能工作。

但最有可能的是1.符号不会被导出; 2.图像库只包含boost的部分,这是他们的任务所需要的。

如果可能,最简单的方法是使用动态版本的boost重新编译图像库。