1

http://doc.qt.digia.com/4.7-snapshot/sql-driver.html#general-information-about-the-oci-pluginに記載されている Windows の手順に従って、Oracle Oci ドライバーをコンパイルしました。

nmake を mingw32-make に置き換える最後のステップまではうまくいきます。私はこれを取得します。

mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `C:/QtSDK/QtSources/4.7.4/src/sql/drivers/oci'
g++ -c -g -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -
DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -
DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"c:\QtSDK\
Desktop\Qt\4.7.4\mingw\include\QtCore" -I"c:\QtSDK\Desktop\Qt\4.7.4\mingw\includ
e\QtGui" -I"c:\QtSDK\Desktop\Qt\4.7.4\mingw\include" -I"c:\QtSDK\Desktop\Qt\4.7.
4\mingw\include\ActiveQt" -I"debug" -I"c:\QtSDK\Desktop\Qt\4.7.4\mingw\mkspecs\d
efault" -o debug\qsql_oci.o qsql_oci.cpp
In file included from qsql_oci.cpp:42:
qsql_oci.h:47:46: error: QtSql/private/qsqlcachedresult_p.h: No such file or dir
ectory
qsql_oci.cpp:50:23: error: qsqlerror.h: No such file or directory
qsql_oci.cpp:51:23: error: qsqlfield.h: No such file or directory
qsql_oci.cpp:52:23: error: qsqlindex.h: No such file or directory
qsql_oci.cpp:53:23: error: qsqlquery.h: No such file or directory
qsql_oci.cpp:65:17: error: oci.h: No such file or directory

その後、多くのエラーが続きますが、それらはすべて make がヘッダー ファイルを見つけられないことに関連していると思います。なぜこれが起こっているのか誰か教えてもらえますか?最初の 2 つの手順で示したように、INCLUDE と LIB へのすべてのパスを正しく含めました。

更新:
qmake -project によって作成された .pro ファイルを変更して追加QT+= sqlしたところ、SQL 関連のヘッダー エラーはすべてなくなりましたが、最初のものqsqlcachedresult_p.hと最後のものoci.hは残っています。

4

2 に答える 2

0

オプションにも追加include\QtSqlしてみてください。-Iこの環境でそれを行う方法は正確にはわかりませんが、おそらく実行中です

set CPP_FLAGS="-Ic:\QtSDK\Desktop\Qt\4.7.4\mingw\include\QtSql"

makeコマンドが実行される前に。

于 2012-09-24T06:02:00.170 に答える
0

残りの2つのヘッダーの問題を解決するために、私がしたことは次のとおりです-

  1. oci.h ファイルの場合、makefile.release および makefile.debug を手動で編集して、ヘッダーへのパスを INCPATH 変数に含めます。( -I"C:\XEClient\oci\include" のようなもの)。

  2. qsqlcachedresult_p.h は QT/src/sql/kernel ディレクトリにありました。そこで、ヘッダー ファイルを C:\QtSDK\Desktop\Qt\4.7.4\mingw\include\QtSql\private の新しいディレクトリにコピーしました。

その後、エラーなしでコンパイルされました。

この投稿は、 http://www.qtcentre.org/threads/41904-Oracle-Call-Interface-(OCI)-driver-problemsに大いに役立ちました。

于 2012-09-25T19:04:11.287 に答える