查看完整版本: [-- Qt5.5.1有编译成功OCI(oracle)驱动的吗? --]

QTCN开发网 -> Qt安装与发布 -> Qt5.5.1有编译成功OCI(oracle)驱动的吗? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

pfeng 2016-05-18 11:33

Qt5.5.1有编译成功OCI(oracle)驱动的吗?

以前用的Qt5.3.1,编译OCI很顺利,为了尝鲜,换到Qt5.5.1了,现在编译OCI驱动总是不成功,晕死。。。
  1. C:/Qt/Qt5.5.1/Tools/mingw492_32/bin/mingw32-make -f Makefile.Release all
    mingw32-make[1]: Entering directory 'C:/Qt/Qt5.5.1/5.5/Src/qtbase/src/plugins/sqldrivers/build-oci-Desktop_Qt_5_5_1_MinGW_32bit-Release'
    C:\Qt\Qt5.5.1\5.5\mingw492_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 -IC:/Qt/Qt5.5.1/5.5/Src/qtbase/mkspecs/win32-g++ -IC:/Qt/Qt5.5.1/5.5/Src/qtbase/src/plugins/sqldrivers/oci -IC:/Utils/icu32_54_1_mingw492/include -IC:/openssl/include -IC:/utils/postgresql/pgsql/include -ID:/oracle/product/10.2.0/db_1/OCI/include -IC:/Qt/Qt5.5.1/5.5/mingw492_32/include/QtCore/5.5.1 -IC:/Qt/Qt5.5.1/5.5/mingw492_32/include/QtCore/5.5.1/QtCore -IC:/Qt/Qt5.5.1/5.5/mingw492_32/include/QtSql/5.5.1 -IC:/Qt/Qt5.5.1/5.5/mingw492_32/include/QtSql/5.5.1/QtSql -IC:/Qt/Qt5.5.1/5.5/mingw492_32/include -IC:/Qt/Qt5.5.1/5.5/mingw492_32/include/QtSql -IC:/Qt/Qt5.5.1/5.5/mingw492_32/include/QtCore -I. ..\oci\main.cpp -o .moc\release\main.moc
    g++ -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..\oci -I. -IC:/Utils/icu32_54_1_mingw492/include -IC:/openssl/include -IC:/utils/postgresql/pgsql/include -ID:\oracle\product\10.2.0\db_1\OCI\include -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtCore\5.5.1 -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtCore\5.5.1\QtCore -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtSql\5.5.1 -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtSql\5.5.1\QtSql -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtSql -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtCore -I.moc\release -I..\..\..\..\mkspecs\win32-g++  -o .obj\release\main.o ..\oci\main.cpp
    g++ -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..\oci -I. -IC:/Utils/icu32_54_1_mingw492/include -IC:/openssl/include -IC:/utils/postgresql/pgsql/include -ID:\oracle\product\10.2.0\db_1\OCI\include -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtCore\5.5.1 -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtCore\5.5.1\QtCore -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtSql\5.5.1 -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtSql\5.5.1\QtSql -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtSql -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtCore -I.moc\release -I..\..\..\..\mkspecs\win32-g++  -o .obj\release\qsql_oci.o ..\..\..\sql\drivers\oci\qsql_oci.cpp
    C:\Qt\Qt5.5.1\5.5\mingw492_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 -IC:/Qt/Qt5.5.1/5.5/Src/qtbase/mkspecs/win32-g++ -IC:/Qt/Qt5.5.1/5.5/Src/qtbase/src/plugins/sqldrivers/oci -IC:/Utils/icu32_54_1_mingw492/include -IC:/openssl/include -IC:/utils/postgresql/pgsql/include -ID:/oracle/product/10.2.0/db_1/OCI/include -IC:/Qt/Qt5.5.1/5.5/mingw492_32/include/QtCore/5.5.1 -IC:/Qt/Qt5.5.1/5.5/mingw492_32/include/QtCore/5.5.1/QtCore -IC:/Qt/Qt5.5.1/5.5/mingw492_32/include/QtSql/5.5.1 -IC:/Qt/Qt5.5.1/5.5/mingw492_32/include/QtSql/5.5.1/QtSql -IC:/Qt/Qt5.5.1/5.5/mingw492_32/include -IC:/Qt/Qt5.5.1/5.5/mingw492_32/include/QtSql -IC:/Qt/Qt5.5.1/5.5/mingw492_32/include/QtCore -I. ..\..\..\sql\drivers\oci\qsql_oci_p.h -o .moc\release\moc_qsql_oci_p.cpp
    g++ -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..\oci -I. -IC:/Utils/icu32_54_1_mingw492/include -IC:/openssl/include -IC:/utils/postgresql/pgsql/include -ID:\oracle\product\10.2.0\db_1\OCI\include -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtCore\5.5.1 -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtCore\5.5.1\QtCore -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtSql\5.5.1 -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtSql\5.5.1\QtSql -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtSql -IC:\Qt\Qt5.5.1\5.5\mingw492_32\include\QtCore -I.moc\release -I..\..\..\..\mkspecs\win32-g++  -o .obj\release\moc_qsql_oci_p.o .moc\release\moc_qsql_oci_p.cpp
    windres -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_LIB
    g++ -Wl,-s -shared -Wl,-subsystem,windows -Wl,--out-implib,\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  -LD:\oracle\product\10.2.0\db_1\OCI\lib\MSVC -loci -LC:/Qt/Qt5.5.1/5.5/mingw492_32/lib -lQt5Sql -lQt5Core .obj\release\qsqloci_resource_res.o
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x104): undefined reference to `OCIAttrGet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x1f4): undefined reference to `OCIAttrSet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x21e): undefined reference to `OCIAttrSet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x2cb): undefined reference to `OCIErrorGet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x3f0): undefined reference to `OCINumberFromInt'
    Makefile.Release:81: recipe for target '\plugins\sqldrivers\qsqloci.dll' failed
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x480): undefined reference to `OCINumberFromInt'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xa64): undefined reference to `OCIDescriptorAlloc'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xaa7): undefined reference to `OCIAttrGet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xae9): undefined reference to `OCIDescriptorFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xb61): undefined reference to `OCIDescriptorFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xc47): undefined reference to `OCIDescriptorAlloc'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xc76): undefined reference to `OCIDescriptorFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xcba): undefined reference to `OCIAttrSet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xcf2): undefined reference to `OCIAttrSet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xed9): undefined reference to `OCIHandleAlloc'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x13d7): undefined reference to `OCIDescriptorFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x1539): undefined reference to `OCIAttrGet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x1568): undefined reference to `OCIAttrGet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x1597): undefined reference to `OCIAttrGet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x15c6): undefined reference to `OCIAttrGet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x15f5): undefined reference to `OCIAttrGet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x1624): more undefined references to `OCIAttrGet' follow
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x18ef): undefined reference to `OCIHandleAlloc'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x197a): undefined reference to `OCIHandleFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x1a03): undefined reference to `OCIHandleFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x1b6b): undefined reference to `OCIEnvCreate'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x1d84): undefined reference to `OCISessionEnd'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x1d9e): undefined reference to `OCIServerDetach'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x1db1): undefined reference to `OCIHandleFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x1dcb): undefined reference to `OCIHandleFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x1de5): undefined reference to `OCIHandleFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x1e4d): undefined reference to `OCIHandleFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x1e64): undefined reference to `OCIHandleFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x1fb5): undefined reference to `OCITransStart'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x20cd): undefined reference to `OCITransCommit'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x21dd): undefined reference to `OCITransRollback'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x352a): undefined reference to `OCIHandleAlloc'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x35d5): undefined reference to `OCIHandleFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x35f3): undefined reference to `OCIHandleFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x3672): undefined reference to `OCIServerAttach'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x36a5): undefined reference to `OCIHandleAlloc'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x36de): undefined reference to `OCIAttrSet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x3710): undefined reference to `OCIHandleAlloc'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x375f): undefined reference to `OCIAttrSet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x37a8): undefined reference to `OCIAttrSet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x37db): undefined reference to `OCIHandleAlloc'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x3815): undefined reference to `OCIAttrSet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x386a): undefined reference to `OCISessionBegin'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x38a4): undefined reference to `OCIAttrSet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x38d6): undefined reference to `OCIServerVersion'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x45a3): undefined reference to `OCIBindByPos'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x46ad): undefined reference to `OCIBindByPos'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x47c2): undefined reference to `OCIBindByPos'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x4a91): undefined reference to `OCIBindByPos'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x4cfa): undefined reference to `OCIBindByPos'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x4f53): more undefined references to `OCIBindByPos' follow
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x4f83): undefined reference to `OCIDescriptorFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x503e): undefined reference to `OCIDescriptorFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x517f): undefined reference to `OCIBindByPos'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x55c6): undefined reference to `OCINumberToInt'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x56ea): undefined reference to `OCINumberToInt'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x72b3): undefined reference to `OCILobCharSetForm'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x72df): undefined reference to `OCILobGetLength'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x73af): undefined reference to `OCILobRead'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x80c5): undefined reference to `OCINumberToInt'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x81e6): undefined reference to `OCIDescriptorAlloc'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x8421): undefined reference to `OCIStmtGetPieceInfo'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x84de): undefined reference to `OCIStmtSetPieceInfo'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x850f): undefined reference to `OCIStmtFetch'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x879d): undefined reference to `OCIErrorGet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x89f3): undefined reference to `OCIStmtFetch'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x8a59): undefined reference to `OCIErrorGet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x8d23): undefined reference to `OCIParamGet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x8f96): undefined reference to `OCIDefineByPos'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x9018): undefined reference to `OCIParamGet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x9102): undefined reference to `OCIDefineByPos'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x91a3): undefined reference to `OCIDefineByPos'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x91e6): undefined reference to `OCIAttrSet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x9219): undefined reference to `OCIAttrSet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x95aa): undefined reference to `OCIDefineByPos'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x977b): undefined reference to `OCIAttrGet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x9905): undefined reference to `OCIStmtExecute'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x9a99): undefined reference to `OCIAttrGet'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x9d2b): undefined reference to `OCIBindByPos'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0x9d8f): undefined reference to `OCIBindArrayOfStruct'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xaa86): undefined reference to `OCIDescriptorFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xb0e5): undefined reference to `OCIStmtExecute'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xb601): undefined reference to `OCINumberToInt'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xb8a1): undefined reference to `OCINumberToInt'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xb9b7): undefined reference to `OCIHandleFree'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xba19): undefined reference to `OCIHandleAlloc'
    .obj/release/qsql_oci.o:qsql_oci.cpp:(.text+0xba6a): undefined reference to `OCIStmtPrepare'
    C:/Qt/Qt5.5.1/Tools/mingw492_32/bin/../lib/gcc/i686-w64-mingw32/4.9.2/../../../../i686-w64-mingw32/bin/ld.exe: .obj/release/qsql_oci.o: bad reloc address 0xc in section `.text$_ZN17QSqlDriverPrivateD1Ev[__ZN17QSqlDriverPrivateD1Ev]'
    collect2.exe: error: ld returned 1 exit status
    mingw32-make[1]: Leaving directory 'C:/Qt/Qt5.5.1/5.5/Src/qtbase/src/plugins/sqldrivers/build-oci-Desktop_Qt_5_5_1_MinGW_32bit-Release'
    makefile:38: recipe for target 'release-all' failed
    mingw32-make[1]: *** [\plugins\sqldrivers\qsqloci.dll] Error 1
    mingw32-make: *** [release-all] Error 2
    10:41:36: 进程"C:\Qt\Qt5.5.1\Tools\mingw492_32\bin\mingw32-make.exe"退出,退出代码 2 。
    Error while building/deploying project oci (kit: Desktop Qt 5.5.1 MinGW 32bit)
    When executing step "Make"
    10:41:36: Elapsed time: 00:08.



XChinux 2016-05-18 13:48
其实通过ODBC也可以连接Oracle,这样就不用编译QOCI了。看我下面这篇文章:

Qt使用Oracle ODBC Driver连接  
http://xchinux.blog.163.com/blog/static/2316926920135410450576

XChinux 2016-05-18 13:56
里面关于设置环境变量那个,可以在代码中进行设置的,当然,要在你创建Qt Oracle ODBC连接之前,比如:

       QString strNLS_LANAG("SIMPLIFIED CHINESE_CHINA.AL32UTF8");
       QString strTNS_ADMIN("D:\\oracle_odbc");
        ::SetEnvironmentVariable(L"NLS_LANG",
                strNLS_LANG.toStdWString().c_str());
        ::SetEnvironmentVariable(L"TNS_ADMIN",
                strTNS_ADMIN.toStdWString().c_str());

375490321 2017-06-11 22:19
楼主我出现的问题跟你一模一样的,求解当时怎么解决的呢?


查看完整版本: [-- Qt5.5.1有编译成功OCI(oracle)驱动的吗? --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled