• 11727阅读
  • 6回复

QT5.3.0 如何编译orcal数据库插件呢? [复制链接]

上一主题 下一主题
离线foxgod
 

只看楼主 倒序阅读 楼主  发表于: 2014-07-16
QT5.3.0 如何编译orcal数据库插件呢?

按照网上说的都不正常编译成功,总是提示未定义。

我按照下面说的编译的:

打开Qt Command Prompt,分别执行以下命令,以编译Oracle驱动:


set INCLUDE=%include%;C:\oracle\product\10.2.0\db_1\OCI\include;C:\Qt\Qt5.0.2\Tools\MinGW\include
set LIB=%lib%;C:\oracle\product\10.2.0\db_1\OCI\lib\MSVC
cd C:\Qt\Qt5.0.2\5.0.2\Src\qtbase\src\plugins\sqldrivers\oci
qmake oci.pro
mingw32-make


其中,C:\oracle\product\10.2.0\db_1\OCI\include为Oracle OCI驱动源码所在目录,D:/QT/mingw/include为编译环境的位置。

执行完以上语句,就会生成libqsqloci.a、libqsqlocid.a、qsqloci.dll、qsqlocid.dll四个文件,把它们copy到C:\Qt\Qt5.0.2\5.0.2\mingw47_32\plugins\sqldrivers目录中即可。

系统环境变量里面我也加入了 orcal的include 、 bin 、lib的路劲。
离线dosmlp

只看该作者 1楼 发表于: 2014-07-17
为什么我既看到了msvc又看到了mingw,不出问题才奇怪吧,建议windows下统一用msvc吧
mingw是不能使用msvc的库的,实在手贱在windows下要用mingw,使用reimp转换一下吧
离线foxgod

只看该作者 2楼 发表于: 2014-07-17
回 dosmlp 的帖子
dosmlp:为什么我既看到了msvc又看到了mingw,不出问题才奇怪吧,建议windows下统一用msvc吧[表情]
mingw是不能使用msvc的库的,实在手贱在windows下要用mingw,使用reimp转换一下吧 (2014-07-17 13:35) 

我按照一篇博文已经编译出来了
http://blog.csdn.net/ac_huang/article/details/36477039
希望对大家有帮助
离线huangzhifei

只看该作者 3楼 发表于: 2014-07-24
回 foxgod 的帖子
foxgod:我按照一篇博文已经编译出来了
http://blog.csdn.net/ac_huang/article/details/36477039
希望对大家有帮助 (2014-07-17 13:48) 

谢谢为我打广告。。
离线foxgod

只看该作者 4楼 发表于: 2014-07-24
回 huangzhifei 的帖子
huangzhifei:[表情]谢谢为我打广告。。 (2014-07-24 13:59) 

原来是你的博客呀,谢谢了,按照你的文章,我编译出来了,3Q
离线davie

只看该作者 5楼 发表于: 2014-12-26
您好,我用的是QT5.1.1 msvc2010_opengl 版本,安装路径为D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl,环境变量设置加上:D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\bin;增加一环境变量QTDIR:D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl和QTMAKESPEC:D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\mkspecs
但出现了如下错误,请帮忙看一下
Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

        cl -c -nologo -Zm200 -Zc:wchar_t -O2 -MD -GR -W3 -w34100 -w34189 -DUNICO
DE -DWIN32 -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -DQT
_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -DNDEBUG -I"D:\Qt\Qt5.1.1\5.1.1
\msvc2010_opengl\include" -I"D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtSql"
-I"D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtSql\5.1.1" -I"D:\Qt\Qt5.1.1\5.1
.1\msvc2010_opengl\include\QtSql\5.1.1\QtSql" -I"D:\Qt\Qt5.1.1\5.1.1\msvc2010_op
engl\include\QtCore" -I"D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore\5.1.1
" -I"D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore\5.1.1\QtCore" -I".moc\re
lease_shared" -I"..\..\..\..\mkspecs\win32-msvc2010" -Fo.obj\release_shared\ @C:
\Users\ThinkPad\AppData\Local\Temp\nma07868.
Command line warning D4002 : ignoring unknown option '-Zc'
Command line warning D4002 : ignoring unknown option '-Z:'
Command line warning D4002 : ignoring unknown option '-Zw'
Command line warning D4002 : ignoring unknown option '-Zc'
Command line warning D4002 : ignoring unknown option '-Zh'
Command line warning D4002 : ignoring unknown option '-Zr'
Command line warning D4002 : ignoring unknown option '-Z_'
Command line warning D4002 : ignoring unknown option '-Zt'
Command line warning D4002 : ignoring unknown option '-w34100'
Command line warning D4002 : ignoring unknown option '-w34189'
main.cpp
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(81) : error
C2146: syntax error : missing ';' before identifier 'iterator_category'
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(84)
: see reference to class template instantiation 'std::iterator_traits<_It>' bein
g compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(81) : error
C2838: illegal qualified name in member declaration
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(84)
: see reference to class template instantiation 'std::iterator_traits<_It>' bein
g compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(81) : error
C2501: 'iterator_category' : missing storage-class or type specifiers
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(84)
: see reference to class template instantiation 'std::iterator_traits<_It>' bein
g compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(82) : error
C2146: syntax error : missing ';' before identifier 'value_type'
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(84)
: see reference to class template instantiation 'std::iterator_traits<_It>' bein
g compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(82) : error
C2838: illegal qualified name in member declaration
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(84)
: see reference to class template instantiation 'std::iterator_traits<_It>' bein
g compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(82) : error
C2501: 'value_type' : missing storage-class or type specifiers
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(84)
: see reference to class template instantiation 'std::iterator_traits<_It>' bein
g compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(83) : error
C2146: syntax error : missing ';' before identifier 'distance_type'
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(84)
: see reference to class template instantiation 'std::iterator_traits<_It>' bein
g compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(83) : error
C2838: illegal qualified name in member declaration
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(84)
: see reference to class template instantiation 'std::iterator_traits<_It>' bein
g compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(83) : error
C2501: 'distance_type' : missing storage-class or type specifiers
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(84)
: see reference to class template instantiation 'std::iterator_traits<_It>' bein
g compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(226) : error
C2974: 'iterator' : invalid template argument for '_D', type expected
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(71)
: see declaration of 'iterator'
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(279)
: see reference to class template instantiation 'std::istreambuf_iterator<_E,_T
r>' being compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(231) : error
C2146: syntax error : missing ';' before identifier 'int_type'
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(279)
: see reference to class template instantiation 'std::istreambuf_iterator<_E,_T
r>' being compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(231) : error
C2838: illegal qualified name in member declaration
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(279)
: see reference to class template instantiation 'std::istreambuf_iterator<_E,_T
r>' being compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(231) : error
C2501: 'int_type' : missing storage-class or type specifiers
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\utility(279)
: see reference to class template instantiation 'std::istreambuf_iterator<_E,_T
r>' being compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(77) : error
C2146: syntax error : missing ';' before identifier 'value_type'
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(92)
: see reference to class template instantiation 'std::back_insert_iterator<_C>'
being compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(77) : error
C2838: illegal qualified name in member declaration
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(92)
: see reference to class template instantiation 'std::back_insert_iterator<_C>'
being compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(77) : error
C2868: 'value_type' : illegal syntax for using-declaration; expected qualified-
name
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(92)
: see reference to class template instantiation 'std::back_insert_iterator<_C>'
being compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(81) : error
C2182: '<Unknown>' : illegal use of type 'void'
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(92)
: see reference to class template instantiation 'std::back_insert_iterator<_C>'
being compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(102) : erro
r C2146: syntax error : missing ';' before identifier 'value_type'
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(117
) : see reference to class template instantiation 'std::front_insert_iterator<_C
>' being compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(102) : erro
r C2838: illegal qualified name in member declaration
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(117
) : see reference to class template instantiation 'std::front_insert_iterator<_C
>' being compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(102) : erro
r C2868: 'value_type' : illegal syntax for using-declaration; expected qualified
-name
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(117
) : see reference to class template instantiation 'std::front_insert_iterator<_C
>' being compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(106) : erro
r C2182: '<Unknown>' : illegal use of type 'void'
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(117
) : see reference to class template instantiation 'std::front_insert_iterator<_C
>' being compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(127) : erro
r C2146: syntax error : missing ';' before identifier 'value_type'
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(144
) : see reference to class template instantiation 'std::insert_iterator<_C>' bei
ng compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(127) : erro
r C2838: illegal qualified name in member declaration
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(144
) : see reference to class template instantiation 'std::insert_iterator<_C>' bei
ng compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(127) : erro
r C2868: 'value_type' : illegal syntax for using-declaration; expected qualified
-name
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(144
) : see reference to class template instantiation 'std::insert_iterator<_C>' bei
ng compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(128) : erro
r C2629: unexpected 'class std::insert_iterator<_C> ('
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(144
) : see reference to class template instantiation 'std::insert_iterator<_C>' bei
ng compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(128) : erro
r C2334: unexpected token(s) preceding ':'; skipping apparent function body
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(144
) : see reference to class template instantiation 'std::insert_iterator<_C>' bei
ng compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(131) : erro
r C2182: '<Unknown>' : illegal use of type 'void'
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(144
) : see reference to class template instantiation 'std::insert_iterator<_C>' bei
ng compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(143) : erro
r C2146: syntax error : missing ';' before identifier 'iter'
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(144
) : see reference to class template instantiation 'std::insert_iterator<_C>' bei
ng compiled
D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(143) : erro
r C2501: 'iter' : missing storage-class or type specifiers
        D:\Program Files (x86)\Microsoft Visual Studio\VC98\include\iterator(144
) : see reference to class template instantiation 'std::insert_iterator<_C>' bei
ng compiled
D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore/qglobal.h(395) : error C2989:
'AlignOf<class ?? ::T &>' : template class has already been defined as a non-te
mplate class
D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore/qglobal.h(395) : error C2906:
C++ language change: to explicitly specialize class template 'AlignOf' use the
following syntax -
        template<> struct AlignOf<class ?? ::`template-parameter-257' &> ...
D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore/qglobal.h(395) : error C2988:
unrecognizable template declaration/definition
D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore/qglobal.h(396) : error C2989:
'AlignOf<class ?? ::`template-parameter-258' [0]>' : template class has already
been defined as a non-template class
D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore/qglobal.h(396) : error C2906:
C++ language change: to explicitly specialize class template 'AlignOf' use the
following syntax -
        template<> struct AlignOf<class ?? ::`template-parameter-258' [0]> ...
D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore/qglobal.h(396) : error C2988:
unrecognizable template declaration/definition
D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore/qglobal.h(839) : error C2146:
syntax error : missing ';' before identifier 'i'
        D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore/qglobal.h(841) : see
reference to class template instantiation 'QForeachContainer<T>' being compiled
D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore/qglobal.h(839) : error C2501:
'i' : missing storage-class or type specifiers
        D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore/qglobal.h(841) : see
reference to class template instantiation 'QForeachContainer<T>' being compiled
D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore/qglobal.h(839) : error C2501:
'e' : missing storage-class or type specifiers
        D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore/qglobal.h(841) : see
reference to class template instantiation 'QForeachContainer<T>' being compiled
D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore/qglobal.h(886) : error C2146:
syntax error : missing ';' before identifier 'qGetPtrHelper'
D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore/qglobal.h(886) : error C2433:
'pointer' : 'inline' not permitted on data declarations
D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\include\QtCore/qglobal.h(886) : fatal error
C1903: unable to recover from previous error(s); stopping compilation
NMAKE : fatal error U1077: 'cl' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"D:\Program Files (x86)\Microsoft Visual Studio\VC98
\bin\NMAKE.EXE"' : return code '0x2'
Stop.
离线foxgod

只看该作者 6楼 发表于: 2016-03-31
回 huangzhifei 的帖子
huangzhifei:[表情]谢谢为我打广告。。 (2014-07-24 13:59) 

你编译过DB2插件没,按照文档编译的时候,很多未定义的东西
快速回复
限100 字节
 
上一个 下一个