Я пишу приложение, использующее библиотеку TBB Intel, и API от компании Maplink, которая также использует TBB. Проблема в том, что и мое приложение, и API Maplink хотят загрузить TBB.dll из каталога, содержащего двоичный файл моего приложения. Версия TBB.dll, которую Maplink предоставляет с их API, отличается от той, которую требует мое приложение, и они не могут сосуществовать в исполняемом каталоге приложения. У меня есть какой-либо вариант здесь, кроме статической привязки TBB к моему приложению, чтобы он не пытался загружать неправильную версию TBB.dll, которую использует API Maplink?Для сторонней библиотеки требуется другая версия той же DLL, что и мое приложение
ответ
Как уже упоминалось в комментариях, вы можете поместить более новую версию tbb.dll в свой каталог приложений, и он должен корректно работать как для приложения, так и для сторонней библиотеки, которую он использует. Например, последняя версия - TBB 4.2 - двоичная, совместимая со старыми версиями с TBB 2.0.
В реальном мире это плохая идея, чтобы смешивать разные версии одной и той же библиотеки DLL. Вы действительно должны попытаться выровнять свою платформу. Он не называется пакетом ад для ничего.
Это, как говорится, очень важно до TBB.dll
, если оно позволяет сразу несколько версий. Возможно, вы сможете статически связать свой код с вашей версией TBB, но при этом вам нужно будет убедиться, что статически связанные символы не отображаются динамически (опция компоновщика, зависящая от сборщика). Код, который у вас есть, который зависит от TBB, вероятно, также должен быть связан на отдельном этапе компоновщика с тем, который включает ссылку на maplink. И приложение нужно будет связать, не переосмысливая TBB.dll
.
По крайней мере, так оно и должно работать для so
файлов в Linux.
- 1. Для сторонней библиотеки требуется 32-разрядное приложение?
- 2. Другая версия jboss на той же машине
- 3. Что делать, когда две общие библиотеки, которые используют разные версии одной и той же сторонней библиотеки?
- 4. Убедитесь, что все библиотеки и библиотеки DLL из одной и той же сборки?
- 5. Использование сторонней COM-библиотеки dll в ASP.NET
- 6. Ссылка на несколько версий одной и той же DLL
- 7. Отладка сторонней библиотеки DLL в Visual Studio?
- 8. Другая версия того же приложения Xamarin.Forms
- 9. Именование библиотеки с тем же именем, что и другая библиотека
- 10. Что лучше всего подходит для программирования против сторонней DLL?
- 11. , требующий msvcr80.dll и msvcr80d.dll в той же DLL?
- 12. Новая версия сторонней DLL-библиотеки - как установить и сохранить старые версии в Delphi?
- 13. Использование двух разных версий одной и той же библиотеки
- 14. C# Проект библиотеки классов - загрузить DLL из той же папки?
- 15. Тупик в сторонней dll
- 16. Интеграция библиотеки QT GUI DLL в мое приложение
- 17. Почему мое приложение .NET CF не находит DLL В том же каталоге, что и исполняемый файл?
- 18. Такая же версия dll для разных компьютеров?
- 19. Можно ли загружать разные версии одной и той же DLL в Java?
- 20. Maven же транзитивной зависимостью, но другая версия
- 21. Зависимость сторонней библиотеки WiX CustomAction
- 22. Слияние кода для той же DLL
- 23. Как я могу найти путь местоположения dll внутри одной и той же библиотеки dll в C++?
- 24. .NET компиляция конфликта ссылок сторонней DLL
- 25. PHP включает в себя другую версию той же библиотеки
- 26. Как упаковать d3dx9_43.dll в мое приложение?
- 27. DLL hinstance с в той же DLL
- 28. Исполняемые нагрузки для той же самой DLL, что и уже загруженная dll
- 29. Как обрабатывать приложение с помощью ссылки dll сторонней организации
- 30. Обтекание сторонней DLL
Не работает ли более новая версия tbb.dll для обоих? – egur
Intel не хочет решить эту проблему (http://software.intel.com/en-us/forums/topic/286809), с которой вы имеете дело. –