Making an OCI (Oracle call interface) driver
-
Hello!
Qt 5.4
mingw491_32
(tried also on the Qt 5.3)
OS Windows 8.1I've got some trouble with compiling an OCI driver.
As it was told by instructions:@ set INCLUDE=%INCLUDE%;c:\oracle\oci\include
set LIB=%LIB%;c:\oracle\oci\lib\msvc
cd %QTDIR%\src\plugins\sqldrivers\oci
qmake oci.pro
nmake@Firstly, i don.t have path exactly like \src\plugins\sqldrivers\oci
instead, i have these ones:
D:\apps\qtthenew\5.4\Src
D:\apps\qtthenew\5.4\mingw491_32\plugins\sqldriversHowever, i don't seem to have either oci folder or oci.pro file.
i tried just to create a folder, move there and then run qmake oci.pro, but i am told that it can't find a file oci.pro
Gererally, my folder \sqldrivers has only some drivers and no filders.By the way, should i set in include and lib links to oracle server libs or oracle client? A have the same folders in both ones.
-
Hi and welcome to devnet,
You need to first retrieve the Qt sources, then you'll be able to go further
-
[quote author="SGaist" date="1423570632"]Hi and welcome to devnet,
You need to first retrieve the Qt sources, then you'll be able to go further[/quote]
Thanks a lot
I'm now downloading from https://qt.gitorious.org/qt, qt/digia-qt repository
am i right?So should i then use copy the required files to my Qt installed folder, to the path %QTDIR%src\plugins\sqldrivers\oci ?
-
a new problem
it was OK until i ran mingw32-make
i tried to find the files it can't do but i failed@D:\apps\qtthenew\5.4\Src\plugins\sqldrivers\oci>mingw32-make
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory 'D:/apps/qtthenew/5.4/Src/plugins/sqldrivers
/oci'
g++ -c -pipe -fno-keep-inline-dllexport -O2 -frtti -Wall -Wextra -fexceptions -m
threads -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_DEBUG -D
QT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I. -I"........\mingw491_32\include" -I"
........\mingw491_32\include\QtSql" -I"........\mingw491_32\include\QtCore
" -I"release" -I"........\mingw491_32\mkspecs\win32-g++" -o release\main.o ma
in.cpp
In file included from main.cpp:44:0:
../../../sql/drivers/oci/qsql_oci.h:47:46: fatal error: QtSql/private/qsqlcached
result_p.h: No such file or directory
#include <QtSql/private/qsqlcachedresult_p.h>
^
compilation terminated.
Makefile.Release:280: recipe for target 'release/main.o' failed
mingw32-make[1]: *** [release/main.o] Error 1
mingw32-make[1]: Leaving directory 'D:/apps/qtthenew/5.4/Src/plugins/sqldrivers/
oci'
makefile:34: recipe for target 'release' failed
mingw32-make: *** [release] Error 2@ -
i solved this as mentioned in "http://stackoverflow.com/questions/17601662/how-to-build-qt-qoci-oracle-database-driver-on-windows-with-mingw"
now i received the next message:
@
D:\apps\qtthenew\5.4\Src\plugins\sqldrivers\oci>mingw32-make
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory 'D:/apps/qtthenew/5.4/Src/plugins/sqldrivers
/oci'
g++ -c -pipe -fno-keep-inline-dllexport -O2 -frtti -Wall -Wextra -fexceptions -m
threads -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_DEBUG -D
QT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I. -I"........\mingw491_32\include" -I"
........\mingw491_32\include\QtSql" -I"........\mingw491_32\include\QtCore
" -I"release" -I"........\mingw491_32\mkspecs\win32-g++" -I"D:\OClient\produc
t\11.2.0\client_1\oci\include" -I"D:\OClient\product\11.2.0\client_1\oci\lib\msv
c" -o release\main.o main.cpp
In file included from ........\mingw491_32\include/QtCore/qnamespace.h:37:0,
from ........\mingw491_32\include/QtCore/qobjectdefs.h:41,
from ........\mingw491_32\include/QtCore/qobject.h:40,
from ........\mingw491_32\include/QtCore/qplugin.h:37,
from ........\mingw491_32\include\QtSql/qsqldriverplugin.h:3
7,
from main.cpp:42:
........\mingw491_32\include/QtCore/qglobal.h:694:5: error: expected construc
tor, destructor, or type conversion before 'enum'
enum {Q_STATIC_ASSERT_PRIVATE_JOIN(q_static_assert_result, COUNTER) = s
izeof(QStaticAssertFailure<!!(Condition)>)}
^
........\mingw491_32\include/QtCore/qglobal.h:699:47: note: in expansion of m
acro 'Q_STATIC_ASSERT'
#define Q_STATIC_ASSERT_X(Condition, Message) Q_STATIC_ASSERT(Condition)
^
........\mingw491_32\include/QtCore/qplugin.h:136:5: note: in expansion of ma
cro 'Q_STATIC_ASSERT_X'
Q_STATIC_ASSERT_X(false, "Old plugin system used")
^
main.cpp:80:1: note: in expansion of macro 'Q_EXPORT_PLUGIN2'
Q_EXPORT_PLUGIN2(qsqloci, QOCIDriverPlugin)
^
Makefile.Release:282: recipe for target 'release/main.o' failed
mingw32-make[1]: *** [release/main.o] Error 1
mingw32-make[1]: Leaving directory 'D:/apps/qtthenew/5.4/Src/plugins/sqldrivers/
oci'
makefile:34: recipe for target 'release' failed
mingw32-make: *** [release] Error 2@