C++ 使用MariaDB在Windows上构建MYSQL/QMYSQL插件时出错 如何使此配置/生成过程正常工作? 为什么会出现下面提到的不同QMAKE错误(如果可能,请详细说明)?
源代码(带下载链接): 我在以下目录中解压并成功构建了MariaDB 5.5.56:C++ 使用MariaDB在Windows上构建MYSQL/QMYSQL插件时出错 如何使此配置/生成过程正常工作? 为什么会出现下面提到的不同QMAKE错误(如果可能,请详细说明)?,c++,mysql,qt5,mariadb,qmake,C++,Mysql,Qt5,Mariadb,Qmake,源代码(带下载链接): 我在以下目录中解压并成功构建了MariaDB 5.5.56: D:\Source_Code-Third_Party\MariaDB\mariadb-5.5.56 Note: I "mkdir lib" and copy all ".lib"s into this folder post-build process. 然后,我通过编写的批处理脚本使用以下命令: set QMAKESPEC=win32-msvc2015 set _ROOT=
D:\Source_Code-Third_Party\MariaDB\mariadb-5.5.56
Note: I "mkdir lib" and copy all ".lib"s into this folder post-build process.
然后,我通过编写的批处理脚本使用以下命令:
set QMAKESPEC=win32-msvc2015
set _ROOT=
set VS2015PATH="C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC"
pushd %VS2015PATH%
call vcvarsall.bat x64
popd
set CL=/MP
set INSTPREFIX=D:\Qt\5.7.1
set OPENSSL_PATH=%usefulStuff%
set OPENSSL_LIBS=%usefulStuff%\libs
set INCLUDE=%usefulStuff%\include;%INCLUDE%
set LIB=%usefulStuff%\lib;%LIB%
set LIBPATH=%usefulStuff%\lib;%LIBPATH%
cd qtbase
configure.bat -skip qtwebengine -skip qtpurchasing -skip qtlocation -skip qtconnectivity -mp -confirm-licence -nomake tests -nomake examples -debug-and-release -opensource -shared -dbus -mp -openssl -qtzlib -plugin-sql-mysql -I %usefulStuff%\include -L %usefulStuff%\lib -prefix %INSTPREFIX%
cd src\plugins\sqldrivers\mysql
set longDir=D:\Source_Code-Third_Party\qt-everywhere-opensource-src-5.7.1
REM (QMAKE COMMAND THAT CAUSES ERROR)
%longDir%\qtbase\bin\qmake "INCLUDEPATH+= D:/Source_Code-Third_Party/MariaDB/mariadb-5.5.56/include" "LIBS+=D:/Source_Code-Third_Party/MariaDB/mariadb-5.5.56/lib/libmysql.lib" mysql.pro
REM unsure if I should do an nmake here as well, or will the qtbase\nmake take care of everything (including plugin)
REM nmake
cd ..\..\..\..
nmake
nmake install
通过上面的(QMAKE ERROR命令),我得到了错误:
Project ERRROR: No module claims plugin type 'sqldrivers'
Project ERROR: Cannot load qmodule.pri!
Error processing project file: mysql.pro
当我将(QMAKE ERROR命令)更改为以下内容时(使用不同的QMAKE):
我得到一个不同的错误:
Project ERRROR: No module claims plugin type 'sqldrivers'
Project ERROR: Cannot load qmodule.pri!
Error processing project file: mysql.pro
我能找到的一些参考资料:以下链接(Qt文档)是代码格式,因为“您需要至少10个信誉才能发布2个以上的链接。” 本应将此问题标记为“qmysql”,但“创建新标记'qmysql'至少需要1500个信誉。请尝试从现有标记列表中选择一些内容。” ----下面是相关的,但我更关心上面提到的错误---
我没有使用Qt5.8.0或5.9.0,因为我无法获得“-skip”、“-plugin sql mysql”和/或“-Qt sql mysql”来使用configure.bat。我会遇到如下错误:
"-qt-sql-mysql"
ERROR: Invalid value given for boolean command line option 'sql-mysql'.
OR
"-plugin-sql-mysql"
ERROR: Feature 'sql-mysql' was enabled, but the pre-condition 'libs.mysql' failed.
Check config.log for details.
OR
"-skip <somethingIShouldBeAbleToSkip>"
ERROR: Unknown command line option '-skip'.
“-qt-sql-mysql”
错误:为布尔命令行选项“sql mysql”提供的值无效。
或
“-插件sql mysql”
错误:已启用功能“sql mysql”,但前置条件“libs.mysql”失败。
有关详细信息,请查看config.log。
或
“-跳过”
错误:未知的命令行选项'-skip'。
我找到的其中一个QTBUG引用:- 如果有人/人同时回答这两个问题&更多,那就太棒了强>
- 提前谢谢大家强>
在配置qt时使用类似于“-qt sql mysql-I C:\progra~1\mysql\include-L C:\progra~1\mysql\lib”的东西。我在QT 5.7.1中使用了这个过程。我按照以下说明在Windows上构建MariaDB: 构建之后,还应该继续并安装到系统上。此安装过程将所有内容放入QT构建过程的正确文件夹结构中 一旦您安装了MariaDB(它应该看起来像一个MySQL安装),您应该能够遵循MySQL的标准QT构建说明
在配置qt时使用类似于“-qt sql mysql-I C:\progra~1\mysql\include-L C:\progra~1\mysql\lib”的东西。我在QT 5.7.1中使用了这个过程。除了雪人6286的答案外,使用默认QT构建还必须执行以下操作:
Qt是使用正常设置的/MD标志构建的,因此必须以同样的方式构建MariaDB,以便Qt链接它。有问题的行位于。\cmake\os\Windows.cmake中。注释掉读取字符串的行(替换“/MD”“/MT”“${flag}”“${${flag}”)。此外,不要让升级向导通过注释掉根CMakeLists.txt中的
ADD_SUBDIRECTORY(win/upgrade_向导)
行进行构建。除了Snowman6286的答案之外,对于使用默认Qt进行构建,必须执行以下操作:
Qt是使用正常设置的/MD标志构建的,因此必须以同样的方式构建MariaDB,以便Qt链接它。有问题的行位于。\cmake\os\Windows.cmake中。注释掉读取字符串的行(替换“/MD”“/MT”“${flag}”“${${flag}”)。此外,不要让升级向导通过注释掉根CMakeLists.txt中的ADD_SUBDIRECTORY(win/upgrade_向导)
行来构建
"-qt-sql-mysql"
ERROR: Invalid value given for boolean command line option 'sql-mysql'.
OR
"-plugin-sql-mysql"
ERROR: Feature 'sql-mysql' was enabled, but the pre-condition 'libs.mysql' failed.
Check config.log for details.
OR
"-skip <somethingIShouldBeAbleToSkip>"
ERROR: Unknown command line option '-skip'.