我正在处理的程序静态链接到 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 但这太乏味了......
谢谢,
蒂姆