我正在编写一个应用程序,该应用程序既使用英特尔的TBB库,也使用同样使用TBB的Maplink公司的API。问题是我的应用程序和Maplink API都想从包含我的应用程序二进制文件的目录加载TBB.dll。 Maplink提供的TBB.dll的版本与我的应用程序需要的版本不同,它们不能同时存在于应用程序的可执行目录中。除了将TBB静态链接到我的应用程序中以外,我是否有任何选项,以便它不会尝试加载Maplink API正在使用的TBB.dll的错误版本?第三方库需要我的应用程序具有相同DLL的不同版本
1
A
回答
2
正如在评论中提到的那样,您可能会将新版本的tbb.dll放入您的应用程序目录,并且它应该适用于应用程序和它使用的第三方库。例如,最近的版本TBB 4.2与旧版本的TBB 2.0二进制兼容。
3
在现实世界中,混合使用同一个DLL的不同版本是一个坏主意。你应该真的尝试让你的平台对齐。它不被称为包裹地狱。
这就是说,它是非常高达TBB.dll
,如果它允许一次多个版本。您可能能够将您的代码静态链接到您的TBB版本,但这样做时您需要确保静态链接的符号不是动态可见的(依赖于编译器集合的链接器选项)。您拥有的代码依赖于TBB,它必须也可以链接到包含链接到maplink的代码中。并且该应用程序将需要链接而不用重新链接TBB.dll
。
至少它是如何在Linux中工作的so
文件。
相关问题
- 1. 不同版本的第三方库实用程序的设计
- 2. 需要一种方法来引用同一第三方DLL的2个不同版本
- 3. 新版本的应用程序是否具有相同的GUID?
- 4. 为什么不同版本的Silverlight程序集具有相同的版本号?
- 5. 无法安装具有相同版本的应用程序
- 6. 优雅地处理第三方库中具有相同属性的不同类
- 7. 第三方库指的是不同版本的log4net.dll
- 8. .Net dll参考 - 部署到具有不同版本的第三方dll的PC上
- 9. 对于不同的Android版本相同的应用程序
- 10. 使用不同版本的相同库
- 11. 具有与完整版本相同的代码库的Android试用版程序
- 12. 发布不同版本的相同应用程序
- 13. 在一个应用程序中使用不同版本的DLL
- 14. 第三方库需要32位应用程序?
- 15. 在一个应用程序中具有相同包名的相同库的两个版本
- 16. 如何动态加载引用不同版本的相同程序集的DLL?
- 17. 防止第三方工厂干扰与我的应用程序的工厂具有相同的名称
- 18. 2个不同版本的相同应用程序共享相同的Google Play游戏应用程序ID?
- 19. 当两个共享库使用相同第三方库的不同版本时该怎么办?
- 20. Qt - 在我的应用程序中使用第三方DLL
- 21. 具有相同名称的不同应用程序?
- 22. Facebook 2个具有相同域名的不同应用程序
- 23. 安装具有不同名称的相同应用程序
- 24. 良好的做法,使.exe和.dll具有相同的版本?
- 25. 不同版本的IOS应用程序
- 26. C++:我需要GCC和GDB具有相同的版本来调试
- 27. 应用程序中的每个Java类是否需要具有不同的唯一序列版本ID?
- 28. 相同的DLL版本在不同的计算机上有所不同?
- 29. 使用相同的DLL,但版本不同
- 30. 相同的组件需要在Wix中的版本上有不同的GUID吗?
tbb.dll的较新版本不适用于两者吗? – egur
英特尔确实[不想解决这个问题](http://software.intel.com/zh-cn/forums/topic/286809)它是你自己处理的。 –