还珠楼主的专栏

这段开始学习QT,发觉QT挺好玩的,QTSQL编程,因为用的是QT开源版,没有现成的Oracle驱动可用,就自己编译一个,在网上搜了下文章,都是QT4.XX的,我比较喜欢新版的,现在QT的最新版本是QT5.4,就打算编译5.4版本的,想着可以很快搞定,其实也比较麻烦,中间出了很多问题,,现在写个博客记录下来,以备后用。

我的编译环境是Windows7,用了两个编译环境,一个VS2013,和MinGW4.9.1.

首先说MinGW4.9.1版的,我用的是qt-opensource-windows-x86-mingw491_opengl-5.4.0.exe,Oracle客户端用的是11GR2的win32位(win32_11gR2_client.zip),安装QT的时候全部选择,会自动安装MinGW4.9.1,打开开始目录里面QT安装目录里的命令行工具QT5.4 XX for desktop,执行命令如下:

set INCLUDE=%INCLUDE%;E:\Qt\Qt5.4.0\5.4\mingw491_32\include;D:\app\Administrator\product\11.2.0\client_1\oci\include

set LIB=%LIB%;E:\Qt\Qt5.4.0\5.4\mingw491_32\lib;D:\app\Administrator\product\11.2.0\client_1\oci\lib\msvc

cd E:\Qt\Qt5.4.0\5.4\Src\qtbase\src\plugins\sqldrivers\oci

qmake -o MakeFile oci.pro

mingw32-make

输出如下:

Setting up environment for Qt usage…

E:\Qt\Qt5.4.0\5.4\mingw491_32>set INCLUDE=%INCLUDE%;E:\Qt\Qt5.4.0\5.4\mingw491_32\include;D:\app\Administrator\product\11.2.0\client_1\oci\include

E:\Qt\Qt5.4.0\5.4\mingw491_32>set LIB=%LIB%;E:\Qt\Qt5.4.0\5.4\mingw491_32\lib;D:\app\Administrator\product\11.2.0\client_1\oci\lib\msvc

E:\Qt\Qt5.4.0\5.4\mingw491_32>cd E:\Qt\Qt5.4.0\5.4\Src\qtbase\src\plugins\sqldrivers\oci

E:\Qt\Qt5.4.0\5.4\Src\qtbase\src\plugins\sqldrivers\oci>qmake -o MakeFile oci.pro

E:\Qt\Qt5.4.0\5.4\Src\qtbase\src\plugins\sqldrivers\oci>mingw32-makemingw32-make -f MakeFile.Release allmingw32-make[1]: Entering directory ‘E:/Qt/Qt5.4.0/5.4/Src/qtbase/src/plugins/sqldrivers/oci’E:\Qt\Qt5.4.0\5.4\mingw491_32\bin\moc.exe -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -D__GNUC__ -DWIN32 -IE:/Qt/Qt5.4.0/5.4/Src/qtbase/mkspecs/win32-g++ -IE:/Qt/Qt5.4.0/5.4/Src/qtbase/src/plugins/sqldrivers/oci -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtCore/5.4.0 -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtCore/5.4.0/QtCore -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtSql/5.4.0 -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtSql/5.4.0/QtSql -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtSql -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtCore main.cpp -o .moc\release\main.mocg++ -c -pipe -fno-keep-inline-dllexport -O2 -std=c++0x -fno-exceptions -frtti -Wall -Wextra -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I. -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore\5.4.0" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore\5.4.0\QtCore" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql\5.4.0" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql\5.4.0\QtSql" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore" -I".moc\release" -I"%INCLUDE%" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include" -I"D:\app\Administrator\product\11.2.0\client_1\oci\include" -I"..\..\..\..\mkspecs\win32-g++" -o .obj\release\main.o main.cppg++ -c -pipe -fno-keep-inline-dllexport -O2 -std=c++0x -fno-exceptions -frtti -Wall -Wextra -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I. -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore\5.4.0" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore\5.4.0\QtCore" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql\5.4.0" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql\5.4.0\QtSql" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore" -I".moc\release" -I"%INCLUDE%" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include" -I"D:\app\Administrator\product\11.2.0\client_1\oci\include" -I"..\..\..\..\mkspecs\win32-g++" -o .obj\release\qsql_oci.o ..\..\..\sql\drivers\oci\qsql_oci.cppE:\Qt\Qt5.4.0\5.4\mingw491_32\bin\moc.exe -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -D__GNUC__ -DWIN32 -IE:/Qt/Qt5.4.0/5.4/Src/qtbase/mkspecs/win32-g++ -IE:/Qt/Qt5.4.0/5.4/Src/qtbase/src/plugins/sqldrivers/oci -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtCore/5.4.0 -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtCore/5.4.0/QtCore -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtSql/5.4.0 -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtSql/5.4.0/QtSql -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtSql -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtCore ..\..\..\sql\drivers\oci\qsql_oci_p.h -o .moc\release\moc_qsql_oci_p.cppg++ -c -pipe -fno-keep-inline-dllexport -O2 -std=c++0x -fno-exceptions -frtti -Wall -Wextra -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I. -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore\5.4.0" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore\5.4.0\QtCore" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql\5.4.0" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql\5.4.0\QtSql" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore" -I".moc\release" -I"%INCLUDE%" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include" -I"D:\app\Administrator\product\11.2.0\client_1\oci\include" -I"..\..\..\..\mkspecs\win32-g++" -o .obj\release\moc_qsql_oci_p.o .moc\release\moc_qsql_oci_p.cppwindres -i qsqloci_resource.rc -o .obj\release\qsqloci_resource_res.o –include-dir=. -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS-DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIBg++ -Wl,-s -shared -Wl,-subsystem,windows -Wl,–out-implib,E:\Qt\Qt5.4.0\5.4\Src\qtbase\plugins\sqldrivers\libqsqloci.a -o ..\..\..\..\plugins\sqldrivers\qsqloci.dll .obj/release/main.o .obj/release/qsql_oci.o .obj/release/moc_qsql_oci_p.o-L%LIB% -LE:\Qt\Qt5.4.0\5.4\mingw491_32\lib -LD:\app\Administrator\product\11.2.0\client_1\oci\lib\msvc -loci -LE:/Qt/Qt5.4.0/5.4/mingw491_32/lib -lQt5Sql -lQt5Core .obj\release\qsqloci_resource_res.omingw32-make[1]: Leaving directory ‘E:/Qt/Qt5.4.0/5.4/Src/qtbase/src/plugins/sqldrivers/oci’mingw32-make -f MakeFile.Debug allmingw32-make[1]: Entering directory ‘E:/Qt/Qt5.4.0/5.4/Src/qtbase/src/plugins/sqldrivers/oci’E:\Qt\Qt5.4.0\5.4\mingw491_32\bin\moc.exe -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -D__GNUC__ -DWIN32 -IE:/Qt/Qt5.4.0/5.4/Src/qtbase/mkspecs/win32-g++ -IE:/Qt/Qt5.4.0/5.4/Src/qtbase/src/plugins/sqldrivers/oci -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtCore/5.4.0 -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtCore/5.4.0/QtCore -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtSql/5.4.0 -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtSql/5.4.0/QtSql -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtSql -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtCore main.cpp -o .moc\debug\main.mocg++ -c -pipe -fno-keep-inline-dllexport -g -std=c++0x -fno-exceptions -frtti -Wall -Wextra -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I. -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore\5.4.0" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore\5.4.0\QtCore" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql\5.4.0" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql\5.4.0\QtSql" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore" -I".moc\debug" -I"%INCLUDE%" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include" -I"D:\app\Administrator\product\11.2.0\client_1\oci\include" -I"..\..\..\..\mkspecs\win32-g++" -o .obj\debug\main.o main.cppg++ -c -pipe -fno-keep-inline-dllexport -g -std=c++0x -fno-exceptions -frtti -Wall -Wextra -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I. -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore\5.4.0" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore\5.4.0\QtCore" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql\5.4.0" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql\5.4.0\QtSql" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore" -I".moc\debug" -I"%INCLUDE%" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include" -I"D:\app\Administrator\product\11.2.0\client_1\oci\include" -I"..\..\..\..\mkspecs\win32-g++" -o .obj\debug\qsql_oci.o ..\..\..\sql\drivers\oci\qsql_oci.cppE:\Qt\Qt5.4.0\5.4\mingw491_32\bin\moc.exe -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -D__GNUC__ -DWIN32 -IE:/Qt/Qt5.4.0/5.4/Src/qtbase/mkspecs/win32-g++ -IE:/Qt/Qt5.4.0/5.4/Src/qtbase/src/plugins/sqldrivers/oci -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtCore/5.4.0 -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtCore/5.4.0/QtCore -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtSql/5.4.0 -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtSql/5.4.0/QtSql -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtSql -IE:/Qt/Qt5.4.0/5.4/mingw491_32/include/QtCore ..\..\..\sql\drivers\oci\qsql_oci_p.h -o .moc\debug\moc_qsql_oci_p.cppg++ -c -pipe -fno-keep-inline-dllexport -g -std=c++0x -fno-exceptions -frtti -Wall -Wextra -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I. -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore\5.4.0" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore\5.4.0\QtCore" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql\5.4.0" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql\5.4.0\QtSql" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtSql" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include\QtCore" -I".moc\debug" -I"%INCLUDE%" -I"E:\Qt\Qt5.4.0\5.4\mingw491_32\include" -I"D:\app\Administrator\product\11.2.0\client_1\oci\include" -I"..\..\..\..\mkspecs\win32-g++" -o .obj\debug\moc_qsql_oci_p.o .moc\debug\moc_qsql_oci_p.cppwindres -i qsqlocid_resource.rc -o .obj\debug\qsqlocid_resource_res.o –include-dir=. -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS-DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIBg++ -shared -Wl,-subsystem,windows -Wl,–out-implib,E:\Qt\Qt5.4.0\5.4\Src\qtbase\plugins\sqldrivers\libqsqlocid.a -o ..\..\..\..\plugins\sqldrivers\qsqlocid.dll.obj/debug/main.o .obj/debug/qsql_oci.o .obj/debug/moc_qsql_oci_p.o -L%LIB% -LE:\Qt\Qt5.4.0\5.4\mingw491_32\lib -LD:\app\Administrator\product\11.2.0\client_1\oci\lib\msvc -loci -LE:/Qt/Qt5.4.0/5.4/mingw491_32/lib -lQt5Sqld -lQt5Cored .obj\debug\qsqlocid_resource_res.omingw32-make[1]: Leaving directory ‘E:/Qt/Qt5.4.0/5.4/Src/qtbase/src/plugins/sqldrivers/oci’

然后就在E:\Qt\Qt5.4.0\5.4\Src\qtbase\plugins\sqldrivers目录下生成了如下文件:

世上没有绝望的处境,只有对处境绝望的人。

还珠楼主的专栏

相关文章:

你感兴趣的文章:

标签云: