Название: Проблема с подключением DLL на VS и QtCreator Отправлено: demaker от Октябрь 24, 2024, 22:31 Доброго времени суток!
Имеется библиотека созданная в VS2022 Типа: example.h Код: #pragma once example.cpp Код:
Если я подключаю данную библиотеку к проекту на VS то все хорошо и работает. Если же к проекту на Qt (правда это на другой машине и там нету VS) то не работает выдается ошибка Код: undefined reference to -Z..Get_Example.. В pro-файле указываю путь к .h и .lib - файлам Код: INCLUDEPATH += "C:\path" Но если в хедере библиотеки сделать Код:
пересобрать и подключить к Qt проекту то все норм. Пытался сделать в .pro файле Qt проекта добавить дефайн Код: DEFINES += EXAMPLE_EXPORTS Но безуспешно( Кто-нибудь сталкивался с такой проблемой? Подскажите в чем может быть причина? Название: Re: Проблема с подключением DLL на VS и QtCreator Отправлено: kambala от Октябрь 24, 2024, 23:41 Цитировать правда это на другой машине и там нету VS ну если там используется не тот же компилятор (msvc toolset), которым ты собрал библиотеку, то чему ты удивляешься. Видимо, мы должны сами угадать какой у тебя компилятор используется на другой машине.Название: Re: Проблема с подключением DLL на VS и QtCreator Отправлено: demaker от Октябрь 25, 2024, 09:48 Цитировать правда это на другой машине и там нету VS ну если там используется не тот же компилятор (msvc toolset), которым ты собрал библиотеку, то чему ты удивляешься. Видимо, мы должны сами угадать какой у тебя компилятор используется на другой машине.Извините что сразу не уточнил ;D Да в студии используется стандартный компилятор(msvc toolset), а в Qt MinGW32bit Т.е получается, что библа используемая в проекте должна быть собрана тем же компилятором что и сам проект иначе никак. Я правильно понимаю? Может можно как-то настроить? Название: Re: Проблема с подключением DLL на VS и QtCreator Отправлено: ssoft от Октябрь 25, 2024, 15:21 Извините что сразу не уточнил ;D Да в студии используется стандартный компилятор(msvc toolset), а в Qt MinGW32bit Т.е получается, что библа используемая в проекте должна быть собрана тем же компилятором что и сам проект иначе никак. Я правильно понимаю? Может можно как-то настроить? В C++ нет стандарта по экспорту методов при сборке библиотек, поэтому библиотеки совместимы только тогда, когда собраны одним и тем же компилятором. Такой стандарт есть в C, но тогда в C++ коде глобальные методы (для других нельзя) нужно задекларировать как Код
Далее небольшой геморрой с подготовкой файлов для другого компилятора Инструментами из состава MinGW для библиотеки требуется выполнить
И главное не напутать с битностью библиотеки, так как инструменты не выдают никаких ошибок). Такой подход следует использовать только тогда, когда нет исходных файлов example и он поставляется исключительно в виде готовой библиотеки, в противном случае это просто садомазохизм. Название: Re: Проблема с подключением DLL на VS и QtCreator Отправлено: kambala от Октябрь 25, 2024, 23:24 Да в студии используется стандартный компилятор(msvc toolset), а в Qt MinGW32bit господи, какая же у тебя каша в голове... Нет никакого «стандартного компилятора», есть вполне конкретная версия msvc toolset, ее можно увидеть через установщик студии.Т.е получается, что библа используемая в проекте должна быть собрана тем же компилятором что и сам проект иначе никак. да, правильно. Не понял что ты хочешь настроить.Я правильно понимаю? Может можно как-то настроить? |