0

我正在开发一个数据库驱动的 QT 项目(基本上是一个日记/日记工具),最终将允许用户连接 MySQL、SQLite 和 Postgres。目前,只构建了 MYSQL 模块,但我在使其在 Windows 上运行时遇到了问题。

我正在针对 Windows 7 上的静态构建 QT 4.7.4 库进行编译,这使程序能够正确找到 QMYSQL 驱动程序。我知道这一点,因为当我静态构建所有内容时,我没有收到“未加载 QMYSQL 驱动程序”错误。但是,当我尝试连接到数据库时,出现“QSqlQuery::exec: database not open”错误。起初,我认为这是因为远程数据库不接受来自我地址的连接,但我也无法连接到 localhost(以 root 身份,使用正确的密码)。

我知道应用程序代码很好,因为它可以在 Linux 上完美运行(相同的 QT 版本,非静态构建......它在 Linux 上构建时似乎“正常工作”而无需任何额外步骤)所以我想知道 QT 是否已构建在 Windows 上正确。我写了一个批处理文件来自动化构建过程:

TITLE Build QT 4.7.4 (static)    
ECHO ON

cd C:\qt-4.7.4\

path C:\MinGW\bin

configure.exe -opensource -platform win32-g++ -release -static -qt-sql-mysql -l mysql -I C:\include -L C:\lib   
PAUSE

mingw32-make

PAUSE

我在 Windows 上正确构建 QT 吗?当我第一次遇到这个问题时,我按照以下说明操作:http ://rag.com.au/linux/qt4howto.html但在最近的构建之后它仍然无法工作。

我必须静态构建 QT,因为没有它我的应用程序无法找到 QMySQL 驱动程序。起初,我尝试使用 MySQL 5.5 社区版中的包含/库,但由于某种原因,构建在中途失败了。(它不喜欢那个特定的 libmysql.lib)当我尝试使用我在 Linux 中编译的头文件/库时,构建正确完成,但我现在遇到了这个问题。

编译 QT 时,Headers/Libraries 的存储位置是否重要?

另外,我有一个三核 CPU。在 Windows 构建期间,我注意到 mingw32-make 只使用了一个内核,因为我的 CPU 一直固定在 33%。有没有办法让它使用整个 CPU,这样就不需要 4-5 个小时来构建?

提前感谢您的任何帮助/建议。

4

1 回答 1

0

试试这个来为你获取可用的驱动程序。

QSqlDatabase * db = new QSqlDatabase;
qDebug() << db->drivers();

这将为您提供可用驱动程序的列表。
检查“QMYSQL”是否存在。

如果不存在,则必须安装驱动程序。

检查此链接以进行安装。

于 2011-10-08T10:05:25.167 回答