我正在开发一个数据库驱动的 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 个小时来构建?
提前感谢您的任何帮助/建议。