背景
- 由于工作需要,需要连接oracle数据库。但是查询资料,发现QT默认没有提供对应的oracle数据库驱动oci,只能自己从源码编译。
- 查阅相关资料,基本都是qt creater编译oracle数据库驱动。步骤简单,也没有什么问题。想着我这边没有安装qt creater,但是可以将对应的Pro工程转换为VS下的解决方案再进行编译,按照这个思路,准备开工。
详细编译步骤
- 编译环境:qt5.2.1;vs2012;oracle10.2;
- 参考资料:https://blog.youkuaiyun.com/weixin_37909076/article/details/90743506
- 按照参考资料修改oci.pro:添加数据库的头文件路径和lib库路径
- 加载Pro工程,转换vs解决方案,编译,报错。。。
解决
- 如果是qt creater,按照参考资料编译没有问题。但是我是将pro工程进行转换后再编译,估计是在转换过程中有些配置项转换的不对,从而造成编译错误。
- 继续查阅资料,发现还有一部分是使用VS命令行进行编译,感觉这个有戏,尝试,成功。。。
- vs命令行编译参考资料:https://blog.youkuaiyun.com/housonglin1213/article/details/71158159
彩蛋
- 在成功编译oracle数据库驱动后,测试发现依旧无法连接服务器端数据库程序。查阅发现,这是由于客户端是32位,而远程数据库程序是64位,QT编译的数据库驱动要求位数一致,统一32位或者64位。好吧。。。