如何使用oracle插件部署基于qt的应用程序

时间:2010-11-01 08:29:37

标签: oracle qt deployment

刚刚使用OCI插件编写基于应用程序的QT,但我无法部署它。 我做了以下步骤:

  1. 安装了QT 4.7 SDK

  2. 安装了OCI插件:

    设置INCLUDE =%INCLUDE%; c:\ oracle \ oci \ include

    设置LIB =%LIB%; c:\ oracle \ oci \ lib \ msvc

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

    qmake -o Makefile oci.pro

    NMAKE

  3. 我跟着说:“使用MSVC在Windows上构建静态Qt” 编辑了\ mkspecs \ win32-X \ qmake.conf:

    QMAKE_CFLAGS_RELEASE = -O2 -MT

    CONFIG + = qt warn_on release incremental flat 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. 我不确定接下来的步骤,但在我的应用程序中,我跑了:

    qmake -o Makefile myProgram.pro

    NMAKE

  6. 我在发布时得到.exe文件,但是我收到错误,没有加载OCI驱动程序... 请帮助我, 我做的任何一步都没有错误

1 个答案:

答案 0 :(得分:0)

你不应该首先编译静态版本的Qt然后编译OCI插件吗?您也可以通过设置适当的configure开关-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. 在visual studio命令行中,将目录更改为C:\ Qt \ 4.7.0-static并执行以下操作:

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

  4. 做一个nmake sub-src

  5. 然后,将您用于应用程序的qt版本更改为刚刚编译的版本,并从QtCreator中的构建菜单执行“运行qmake”和“重建项目”(因为您安装了Qt SDK,我假设你正在使用它)

  6. 希望现在可以正常工作 - 使用-qt-sql-oci开关会导致oci驱动程序的静态构建。