Linux下Qt编译数据库驱动(Oracl)

楼主是一枚14年毕业的萌新,最近在跟项目的时候需要在Linux环境下连接数据库,所以在网上一顿好找。整个流程虽然有大佬整理过,但是感觉还是不算很全。刚刚终于在Qt Creator里看到了 QSqlDatabase::drivers()返回了“QOCI”,故写一份总结作为自己在CSDN的处女作。

我用的是最笨的方法,在Ubuntu 14.04下先安装的Oracl数据库,然后用它里面的.h和.so编译Qt里面的驱动。

安装数据库教程的传送门:
https://www.linuxidc.com/Linux/2017-12/149797.htm
这位大佬已经把很多的坑指出来了,并且告诉了怎么填,在此奉献上我卑微的膝盖,蟹蟹大佬老父亲般的讲解orz
安装过程中会出现其他的坑:
1)要注意一下系统是多少位的,数据库是多少位的(可能会用到指令getconf LONG_BIT;和readelf)
2)还有一些改配置失败的地方,比如修改sysctl.conf报错,传送门在这:
https://blog.csdn.net/anymoo/article/details/78876953
3)安装程序出现乱码: LANG=‘zh_CN.US’ ./runInstaller(忘了是不是这么写的了,目前楼主正在Windows下回忆,真香)
还有一些坑我记不太清了,其它大佬的帖子里一定能找到答案的~

编译环节是最蛋疼的,哇,很痛苦QAQ
1)用Qt Creator打开某神秘未知目录/src/sql/drivers/oci.pro
2)添加下面两句
INCLUDEPATH += ╰(°▽°)╯/product/11.2.0/dbhome_1/OCI/include
LIBS = -L╰(°▽°)╯/product/11.2.0/dbhome_1/OCI/lib/MSVC
非常抱歉这是我在Windows下的目录,跟Linux的有些出入,小伙伴可以对应着改一下(INCLUDEPATH需要的是oci.h的路径; LIBS的是libctxxxx…完,记不住了,应该是include的上两层有个lib文件夹,嗯 就是这样,后面-l不用写,如果找不到他会说的(反正我是没写-lxxxxx))
3)编译一下,稳。要是一次看到绿条了,good luck
4)然后去某神秘未知目录/plugin/sqldrivers/下面找libqsqloci.so文件,目录是直接plugin下的!不是src下的plugin!!别生成了还一直找不到← ←
5)然后!然后!!!别他喵的以为这个路径不就是windows下放驱动的那个位置嘛,直接开项目就运行。嘿嘿嘿,open()的时候你就哭吧。这个时候强烈建议sudo find / -name libqsqlite.so搜一下!(.so的名字我可能拼错了,就是Qt自带的sqlite驱动名字,但这不是重点~)你会发现有个/usr/local/某神秘路径下他喵的还有个分身!(其实你会找到好几个,但是有一个就跟这个路径特别像xxxxxxx/plugin/sqldriver/)
6)还用再解释嘛?盘他! sudo cp 复制编译好的库粘到那个目录下
7)Qt Creator建个工程, .pro 里找个聚堆的地方QT += sql ,剩下的铁纸萌就自由发挥吧。

从毕设的时候就特别感谢论坛里的大佬们,这回也是借这个机会回报一下。蟹蟹大佬们这么长时间的照顾,还有问题的小伙伴可以在下面留言,如果没人留言的话我会默认讲解得细致~(后仰60°的膨胀)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值