刚刚使用OCI插件编写基于应用程序的QT,但我无法部署它。 我做了以下步骤:
安装了QT 4.7 SDK
安装了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
我跟着说:“使用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
然后在Qt目录上:
configure -static -release
nmake sub-src
我不确定接下来的步骤,但在我的应用程序中,我跑了:
qmake -o Makefile myProgram.pro
NMAKE
我在发布时得到.exe文件,但是我收到错误,没有加载OCI驱动程序... 请帮助我, 我做的任何一步都没有错误
答案 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
根据要求,这里一步一步说明它应该如何运作:
提取静态Qt版本的qt源代码,比如C:\ Qt \ 4.7.0-static
按照您的方式更改qmake.conf。
在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
做一个nmake sub-src
然后,将您用于应用程序的qt版本更改为刚刚编译的版本,并从QtCreator中的构建菜单执行“运行qmake”和“重建项目”(因为您安装了Qt SDK,我假设你正在使用它)
希望现在可以正常工作 - 使用-qt-sql-oci开关会导致oci驱动程序的静态构建。