• 4331阅读
  • 2回复

[提问]如何在静态编译的Qt 中使用sql? [复制链接]

上一主题 下一主题
离线humadivinity
 

只看楼主 倒序阅读 楼主  发表于: 2016-01-17
因为之前在使用动态Qt 中,把程序放到其它电脑上运行时,遭遇到个种种找不到动态库的情况,
所以一寻思,就想起用静态编译的方法来了,好不容易看完了官网的一篇文章:
Building a static Qt for Windows using MinGW
无脑按部就班后,弄出来了一个Static版本,但是在链接数据的时候就出现问题了,
用的Qt版本是:5.5.1
我链接的是sql server 2012,

在.pro文件中设置 QT       += core gui sql

.cpp文件主要代码如下:
    QSqlDatabase qDB = QSqlDatabase::addDatabase("QODBC","firstConnect");    qDB.setHostName("127.0.0.1");    qDB.setDatabaseName("MyTempDB");    qDB.setUserName("sa");    qDB.setPassword("123456");    bool IsOpen = qDB.open();    if(IsOpen)    {       qDebug()<<"connect to Database Success.";    }    else    {        qDebug()<<"Connect failed!";        QSqlError qerror = qDB.lastError();        qDebug()<<qerror.text();    }

错误如下:
"Driver not loaded Driver not loaded"
Available drivers:
     "QSQLITE"
我按照
SQL Database Drivers
上面说明的,编译出来了两个文件 libqsqlodbcd.alibqsqlodbc.a
但是不知道该怎么使用,该放到哪里,我做过下面的尝试:
(1)把这两个文件放到 %QT/plugins/目录 ,结果:和原来一样的错误
(2)在
%QT/plugins/目录下,仿照动态版本,新建一个 sqldrivers 文件夹,把两个文件放进去。 结果:和原来相同的错误
(3)把文件放到
%QT/lib/目录下。 结果:和原来同样的错误

请问静态编译的Qt要怎么样使用那些数据库驱动插件

谢谢各位了。
离线humadivinity

只看该作者 1楼 发表于: 2016-01-18
各位高手,求指点~~~
离线stlcours

只看该作者 2楼 发表于: 2016-01-18
你恰恰漏了一个关键信息,你是怎么制作的静态编译版本?编译的时候,参数是什么?

另外,SQL2012版本太高,未必支持,能否拿SQL2005/2008做做实验?
快速回复
限100 字节
 
上一个 下一个