Как развернуть приложение на основе QT с плагином оракула - PullRequest
0 голосов
/ 01 ноября 2010

только что написал QT на основе приложения с плагином OCI, но я не могу его развернуть. я сделал следующие шаги:

  1. установлен QT 4.7 SDK

  2. Установлен плагин OCI:

    set INCLUDE =% INCLUDE%; c: \ oracle \ oci \ include

    set LIB =% LIB%; c: \ oracle \ oci \ lib \ msvc

    cd% QTDIR% \ src \ plugins \ sqldrivers \ oci

    qmake -o Makefile oci.pro

    NMAKE

  3. я последовал: «Сборка статического Qt в Windows с MSVC» отредактировал \ mkspecs \ win32-X \ qmake.conf:

    QMAKE_CFLAGS_RELEASE = -O2 -MT

    CONFIG + = qt warn_on инкрементно выпустить плоский link_prl precompile_header autogen_precompile_source copy_dir_files debug_and_release debug_and_release_target

  4. затем в каталоге Qt:

    configure -static -release

    nmake sub-src

  5. Я не уверен в следующих шагах, но в моем приложении dir я запустил:

    qmake -o Makefile myProgram.pro

    NMAKE

Я получаю файл .exe в выпуске, но получаю ошибку, что драйвер OCI не загружен ... пожалуйста, помогите мне, у меня не было ошибок ни в одном шаге, который я сделал

1 Ответ

0 голосов
/ 01 ноября 2010

Разве вы не должны сначала скомпилировать статическую версию Qt, а затем скомпилировать плагин OCI?Вы также можете сделать это за один шаг, установив соответствующий переключатель конфигурации -qt-sql-oci и добавив необходимые каталоги include и lib.

Потому что в вашем сценарии qmake вы использовали для компиляции OCIплагин?Статическая версия, которую вы собираетесь использовать для своего приложения, еще не создана.Похоже, ваш плагин OCI был собран с одной версией Qt, тогда как ваше приложение использует другую (статическую) версию Qt.Это несоответствие, скорее всего, является причиной вашей проблемы.

Кроме того, при использовании статических плагинов вы должны использовать макрос Q_IMPORT_PLUGIN.Смотрите здесь для получения более подробной информации http://doc.qt.io/archives/qt-4.7/plugins-howto.html#static-plugins

По запросу, здесь пошаговая инструкция, как это должно работать:

  1. Извлечение исходников qt для вашей статической версии Qt,скажем в C: \ Qt \ 4.7.0-static

  2. Измените qmake.conf так, как вы уже сделали.

  3. В вашем визуальномизмените каталог на C: \ Qt \ 4.7.0-static и сделайте это:

    configure -static -release -qt-sql-oci -IC: \ oracle \ oci \ include -L c: \ oracle \ oci \ lib \ msvc

  4. Сделайте подпрограмму nmake

  5. Затем измените версию qt, которую вы используете для своего приложенияна только что скомпилированный и выполните «Run qmake» и «Rebuild project» из меню сборки в QtCreator (поскольку вы установили Qt SDK, я предполагаю, что вы его используете)

  6. Надеюсь, теперь это работает - использование ключа -qt-sql-oci вызывает статическую сборку драйвера oci.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...