Мое приложение обращается к базе данных Oracle через класс Qt QSqlDatabase.
Я собираю Qt как статическую версию для сборки релиза, но я не могу избавиться от зависимости OCI.dll. Я пытаюсь создать ссылку на файл oci.lib (доступный в Oracle Instant Client с SDK).
Вот моя строка конфигурации :
configure -qt-libjpeg -qt-zlib -qt-libpng -nomake examples -nomake demos -no-exceptions -no-stl -no-rtti -no-qt3support -no-scripttools -no-openssl -no-opengl -no-phonon -no-style-motif -no-style-cde -no-style-cleanlooks -no-style-plastique -static -release -opensource -plugin-sql-oci -plugin-sql-sqlite -platform win32-msvc2005
Я ссылаюсь на oci.h и oci.lib в папке SDK, используя:
set INCLUDE=C:\oracle\instantclient\sdk\include;%INCLUDE%
set LIB=C:\oracle\instantclient\sdk\lib\msvc;%LIB%
Затем, после компиляции Qt, я использую следующие строки в моем файле * .pro:
QT += sql
CONFIG += static
LIBS += C:\oracle\instantclient\sdk\lib\msvc\oci.lib
QTPLUGIN += qsqloci
Затем в моем main.cpp я добавляю следующие команды для статической компиляции плагина OCI в приложении:
#include <QtPlugin>
Q_IMPORT_PLUGIN(qsqloci)
После компиляции проекта я тестирую его на своей рабочей станции, и он работает (так как у меня установлен Oracle Instant Client). Когда я пробую другую рабочую станцию, я всегда получаю сообщение:
Это приложение не удалось запустить
потому что OCI.dll не был найден.
Переустановка этого приложения может исправить
эта проблема.
Я не понимаю, почему мне все еще нужен OCI.dll, поскольку мое статически связанное приложение должно вместо этого ссылаться на oci.lib.
Есть ли здесь люди из Qt, у которых есть решение для меня?
Большое спасибо!
1033 * СТЛ *