首页| 论坛| 消息

标题:qt4.7.4使用msvc2010静态编译qoci失败求解
作者:coolfarseer
日期:2012-03-20 10:29
内容:

静态编译过程:运行环境xp sp3,从官网下载了qt-everywhere-opensource-src-4.7.4.zip并解压到e:\Qt4.7.4\,根据网上的说明如下设置修改..\mkspecs\win32-msvc2010\qmake.conf中:QMAKE_CFLAGS_RELEASE= -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG= -Zi -MTd
在PATH环境变量中添加:”e:\Qt4.7.4\″添加新的环境变量,名字为”QMAKESPEC”,值为”win32-msvc2010″添加新的环境变量,名字为”QTDIRnew”,值为”e:\Qt4.7.4\″(我原来已有4.7.3非静态版本) 然后进入Visual StudioCommand Prompt (2010)跳转到e:\Qt4.7.4\设定set INCLUDE=%INCLUDE%;D:/Work/Oracle_10.2_client/oci/include
set LIB=%LIB%;D:/Work/Oracle_10.2_client/oci/lib
输入configure..


#1 [liking123 03-26 11:20]
编译好了qoci,放入相应的文件夹里(除非你知道了路径),就可以使用了啊?
#2 [coolfarseer 04-05 16:30]
引用第1楼liking123于2012-03-26 11:20发表的:
编译好了qoci,放入相应的文件夹里(除非你知道了路径),就可以使用了啊?
出差去了忘了关注

我也估摸着帖子太长得逐个解释

帖子大意与你相关的问题是:动态编译qoci没有问题,静态编译qoci按如上configure参数nmake经过测试是失败的。。。就是问这个问题,当然动态编译的dll和lib就我所见明显是不能扔到静态版本相关路径下直接使用的
#3 [dearwsjj 12-04 13:04]
Qt的数据库插件好像是以动态库的形式加载的吧。我之前也尝试静态编译QOCI驱动,编译成功了,但是无法加载,可能是我的操作不对。不过我的理解如下:
1. 如果需要字没与安装ORACLE的库的机子上能运行的话。那么编译的时候你需要有ORACLE库的静态库文件。
2. 你需要对QOCI进行静态编译。那么QOCI在你主程序编译的时候就已经编译好了,静态库是直接编译到主程序里的,应该以后就不会再需要加载库文件了。
3. 需要在你主程序里的.pro文件里指定静态QOCI库文件的路径。
我并没有尝试过,所以不知道是否能成功。但是我觉得,你只要在程序发布的时候包含ORACLE的库一起发布就行了,没有必要将QOCI也编译成静态库。

回复 发表
主题 版块