【发布时间】:2010-11-01 21:48:33
【问题描述】:
我正在处理的程序静态链接到 3rdPartyLibrary.lib。
我们想利用同一个 3rdPartyLibrary 的更新版本,比如 3rdPartyLibraryNewVersion.lib。
因此决定将 3rdPartyLibraryNewVersion.so 作为动态链接库包含在内,并通过名为 wrapper.so 的包装动态库包含在内。我们希望同时使用 3rdPartyLibrary 的新版本和旧版本,但在程序的不同方中。
我们的解决方案是静态链接旧的 3rdPartyLibrary,同时动态链接到包装库到 3rdPartyLibraryNewVersion。
程序 --- 静态链接 ---> 3rdPartyLibrary.lib。 --- 动态链接 --> wrapper.so --- 动态链接 ---> 3rdPartyLibraryNewVersion.so.
这可能吗?
我们遇到的问题是,当 wrapper.so 使用测试可执行文件时,当从静态链接到 3rdPartyLibrary.lib 的程序调用包装器时,它在 3rdPartyLibraryNewVersion.so 内失败。
我做错了什么吗?
我知道正确的方法是将我们的代码更新为 3rdPartyLibrary.lib 但这太繁琐了...
谢谢,
提姆
【问题讨论】:
标签: shared mixed-mode