2012-01-04 3 views
0

WinXp에서 Qt를 사용하여 Oracle DB에 연결하려고합니다. Qt 명령에 따라 QSql을 사용하기 위해서는 DB 액세스를위한 Qt 플러그인을 빌드하는 데 필요한 소스를 다운로드해야했습니다 (QOCI가 필요합니다). Qt는 문서에 따르면, 나는 다음과 같은 실행해야합니다Qt building OCI plugin

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

답변을 찾았습니다. 오라클은 mingw 컴파일러를 지원하지 않으며 Qt 용 플러그인은 msvc로 빌드해야합니다.

1

. 메이크 파일은 /sqldrivers/이 아니라 /sql/drivers/이라고 생각합니다. 이 문제를 해결하는 방법에는 여러 가지가 있으며, 플러그인의 릴리스에 오류가 있는지 또는 Qt가 오류를 옮겼는지 여부는 알 수 없습니다.

편집 : 편집 : 그 첫 번째 비트는 그다지 잘못이 아니지만 나는 그 모든 이야기를 생각하지 않습니다. Qt source으로 다운로드 할 때 Qt Creator와 함께 다운로드 할 때 헤더의 디렉토리 구조가 다릅니다.

필자가 편집 한 조언은 적합한 버전의 출처를 찾아 다운로드하여 해결할 수 있습니다. 당신은 자신이 어디에 있어야 할지를 알아야 할 것입니다. (필자는 전에 플러그인을 만들지 않았으므로) 근원을 짓기 위해 더 좋은 행운을 가져야합니다!

+0

qsqlcachedresult_p.h는 C : \ QtSDK \ QtSources \ 4.7.4 \ src \ sql \ kernel에만 있습니다. 나는 msvc를 사용하여 컴파일을 시도했다 - 동일한 결과를 준다. – evgvg