使用MySQL驱动程序问题交叉编译Qt5(Mingw)

时间:2018-03-06 15:32:49

标签: mysql qt qt5

我尝试过很多关于文档或教程的内容......但是我仍然无法使用MySQL库驱动程序对Qt进行交叉编译。故事开始:

我必须使用MinGW(确切地说i686-w64-mingw32-前缀)将Qt从Linux交叉编译到Windows(32位)。我下载了qtbase-opensource-src-5.9.4并开始像这样工作:

$ ./configure -prefix [...]/qt-5.9.4 -xplatform win32-g++ -device-option CROSS_COMPILE=/usr/bin/i686-w64-mingw32- -opengl desktop -no-sql-odbc -sql-sqlite -enable-shared -nomake examples -nomake tests -release

它有效。然后,makemake install也奏效了。但我发现只有SQLite" .dll"在plugins/sqldrivers存储库中。所以我试着编译MySQL驱动程序......我怎么能这样做?如果我将-sql-mysql添加到./configure ...来电,我必须遵循以下错误:

ERROR: Feature 'sql-mysql' was enabled, but the pre-condition 'libs.mysql' failed.

我从官方网站下载了MySQL库以获取mysql-5.7.21-win32.zip。但是如何将它与qtbase源链接起来呢?将MYSQL_INCDIR=[...]/mysql-5.7.21-win32/includeMYSQL_LIBDIR=[...]/mysql-5.7.21-win32/libMYSQL_PREFIX=[...]/mysql-5.7.21-win32添加到我的./configure ...命令会产生相同的错误消息。

请问好吗?

修改

我尝试像这样编译驱动程序(使用我之前构建的qmake):

$ cd qtbase-opensource-src-5.9.4/src/plugins/sqldrivers/mysql
$ [/*prefix of my previous build*/]/qt-5.9.4/bin/qmake .

结果是:

Project ERROR: Library 'mysql' is not defined.

2 个答案:

答案 0 :(得分:1)

大家好,我找到了解决方案:当你想在我的情况下添加像MySQL一样的lib时,做一个干净的结账或将-recheck-all添加到./configure命令。容易不是吗?为清楚起见,这是我使用的命令:

./configure -prefix [...] -xplatform win32-g++ -device-option CROSS_COMPILE=/usr/bin/i686-w64-mingw32- -opengl desktop -no-sql-odbc -sql-sqlite -plugin-sql-mysql MYSQL_PREFIX=[...] -enable-shared -nomake examples -nomake tests -release -recheck-all

这只是一个刷新问题,但我更愿意接受这个答案,因为它很难实现。

答案 1 :(得分:0)

而不是你在编辑中尝试过的,我认为应该是:

$ cd qtbase-opensource-src-5.9.4/src/plugins/sqldrivers
qmake -- MYSQL_PREFIX= [...]/mysql-5.7.21-win32/include