2012-01-04 4 views
0

WinXpでQtを使用してOracle DBに接続しようとしています。 Qt命令に続いてQSqlを使用するには、DBアクセス用のQtプラグインをビルドするために必要なソースをダウンロードしました(QOCIが必要です)。 Qtのドキュメントによると、私は次のように実行する必要がありますQtビルドOCIプラグイン

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 

しかし、私は、次のエラーを取得:それはC:\Qt\SDK\Desktop\Qt\4.7.4\mingw\includeにあるヘッダを見つけることができません

C:\QtSDK\Desktop\Qt\4.7.4\mingw\src\plugins\sqldrivers\oci>mingw32-make 
mingw32-make -f MakeFile.Debug 
mingw32-make[1]: Entering directory `C:/QtSDK/Desktop/Qt/4.7.4/mingw/src/plugins/sqldrivers/oci' 
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_DLL -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_L 
IB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtSql" -I"..\..\. 
.\..\include" -I"..\..\..\..\include\ActiveQt" -I"debug" -I"..\..\..\..\mkspecs\default" -o debug\main.o main.cpp 
In file included from main.cpp:44: 
../../../sql/drivers/oci/qsql_oci.h:47:46: error: QtSql/private/qsqlcachedresult_p.h: No such file or directory 
In file included from main.cpp:44: 
../../../sql/drivers/oci/qsql_oci.h:68: error: expected class-name before '{' token 
../../../sql/drivers/oci/qsql_oci.h:80: error: 'ValueCache' has not been declared 
mingw32-make[1]: *** [debug/main.o] Error 1 
mingw32-make[1]: Leaving directory `C:/QtSDK/Desktop/Qt/4.7.4/mingw/src/plugins/sqldrivers/oci' 
mingw32-make: *** [debug] Error 2 

答えて

1

私は答えを見つけました。 Oracleはmingwコンパイラをサポートしておらず、Qtのプラグインはmsvcでビルドする必要があります。

1

。 makefileは /sqldrivers/ではなく /sql/drivers/と考えているようです。これを修正するにはいくつかの方法がありますが、プラグインのリリースにエラーがあるのか​​、Qtがそれらを移動したのかはわかりません。

編集: 編集: 最初のビットはそれほど間違っていませんが、私はその全体の話を考えていません。 Qt sourceとしてダウンロードしたときと同じように、Qt Creatorと一緒にダウンロードすると、ヘッダのディレクトリ構造が異なります。

私の編集したアドバイスは、元の正しいバージョンを見つけ、それをダウンロードして、代わりにその付の建物しようとするだろう。あなたは、(私は以前にプラグインを構築したことはないが)階層内にあるべき場所を把握しなければならないだろうが、ソースに対してビルドするときには、より良い運を得なければならない!

+0

私が確認したように、qsqlcachedresult_p.hはC:\ QtSDK \ QtSources \ 4.7.4 \ src \ sql \ kernelにのみあります。私はmsvcを使ってコンパイルしようとしました - それは同じ結果を与えます。 – evgvg

関連する問題