我尝试过很多关于文档或教程的内容......但是我仍然无法使用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
它有效。然后,make
和make 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/include
和MYSQL_LIBDIR=[...]/mysql-5.7.21-win32/lib
或MYSQL_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.
答案 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