【发布时间】:2017-03-15 18:04:21
【问题描述】:
我有一个已编译的库 C++(我们称之为 a.so),其中链接了 Boost 库符号,但我没有重新编译它的源代码。
我制作了一个 C++ 程序,它需要链接到这个库和我计算机上安装的 boost 版本。
但是当我的程序尝试访问 Boost 函数时,它最终会调用 a.so 中定义的 Boost 函数,而不是我计算机上的函数。
我试图围绕 a.so 创建一个包装库来隐藏不需要的符号,但编译失败。
如何配置 CMake 以使其构建和工作,无论是否有包装器?
解决方案需要与 Linux 兼容。
【问题讨论】:
-
您是否尝试过为您的库 a.so 动态链接 boost 库而不是静态链接?
-
不,因为如上所述,我没有重新编译它的源代码。