Я работаю в ситуации, когда у меня установлены две разные версии Qt: одна скомпилирована с mingw, а другая с visual studio.
Теперь, когда я компилирую свою программу с версией Qt MinGW и запускаю ее, я получаю сообщение с зашифрованным текстом, в котором говорится, что один из основных модулей Qt не загружен.
Мой вопрос заключается в том, как мне установить путь к основным модулям Qt для моего приложения на C ++. Я посмотрел на документацию и нашел addLibraryPath метод, но, похоже, только для плагинов Qt.
редактировать
Кажется, я неправильно понял вопрос, так как SIFE комментирует, что ему нужно загружать модули Qt (например, QtGui4.dll), а не плагины. Ответ для плагинов оставлен здесь, на случай, если он может кому-то помочь.
Плагины
Qt загружает плагины, которые находятся в SDK/plugins
по умолчанию. Проблема в том, что сначала он находит неправильный SDK …
Если я правильно помню, Qt сначала поищи в каталоге .
, Таким образом, вы можете скопировать каталог ‘plugins’ рядом с вашим * .exe: плагины для msvc, скопированные рядом с exe-скомпилированным msvc, и плагины для gcc рядом с exe-скомпилированным gcc.
Если вы не хотите копировать plugins
каталог, вы можете использовать setLibraryPaths (не проверено, но может работать)
Не в последнюю очередь, вы также можете использовать qt.conf подход.
Модули
Модули не загружаются динамически, в том смысле, что они являются частью зависимостей приложения, поэтому они загружаются при запуске exe, а не через LoadLibrary. Итак, решение простое: просто скопируйте dll в ту же папку, что и папка, содержащая * .exe
Что касается компилятора, то правильные настройки библиотеки / включения должны быть выполнены QMake.
QMake создает ваш make-файл / VS-Project, используя библиотеки из той же версии, к которой принадлежит Qmake.
Попробуйте вызвать QMake, используя полный путь для каждой версии Qt.
например
c:/myQtMinGwProject>c:/Qt4_mingw/bin/qmake
c:/myQtVSProject>c:/Qt4_VS2008/bin/qmake -t vcapp
Что касается времени выполнения, убедитесь, что dll для соответствующей версии находятся в PATH
Я надеюсь, что это помогает