一开始使用的是比较新的QT 5.14,但后来要求要能在xp运行。于是下了个5.6。按照之前的经验根据官方文档编译OCI插件
5.6的官方文档例子如下:
set INCLUDE=%INCLUDE%;c:\oracle\oci\include
set LIB=%LIB%;c:\oracle\oci\lib\msvc
cd %QTDIR%\qtbase\src\plugins\sqldrivers\oci
qmake oci.pro
nmake
nmake替换为mingw-make
也一样碰到了很之前编译5.14时也碰到的问题,比如找不到oci.h,解决方法随便就能搜到,就是更改oci.pro的内容。
结果报错cannot find -loci
看了一些回答,有人表示是不能使用msvc的lib库。但在之前5.14版本我也是直接引用了了oci.lib,百思不得其解。
后来在网上翻了一下午,找到一个帖子:点这里
里面一层楼写了完整的编译过程,我发现他引用库的写法和我的不一样
qmake "INCLUDEPATH+=C:\app\nehain\product\11.2.0\client_1\oci\include" "LIBS+=-LC:\app\nehain\product\11.2.0\client_1\oci\lib\msvc -loci" oci.pro
我:LIBS+=C:\app\nehain\product\11.2.0\client_1\oci\lib\msvc\oci.lib
他:LIBS+=-LC:\app\nehain\product\11.2.0\client_1\oci\lib\msvc -loci
于是试了下,结果就成了
并不知道为什么在5.14可以的写法,在5.6就不能成功,如果有大神知道恳请指点。
因为我碰到这个问题的时候在内网并没有搜到解决方案,所以记录一下,方便其他和我一样的萌新~