使用 Qt 5.8 和 SQL 库配置错误
Configure error with Qt 5.8 and SQL libraries
在构建 Qt 5.7 时,我曾经调用以下命令行:
C:\SDK\Qt\src\configure -commercial -confirm-license
-debug-and-release -force-debug-info -ltcg -static -angle -nomake examples -nomake tests -qt-sql-odbc -qt-sql-sqlite -qt-zlib -D
Z_PREFIX -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip
qtpurchasing -skip qttools -skip qtcanvas3d -skip qtconnectivity -skip
qtdatavis3d -skip qtdeclarative -skip qtdoc -skip qtgamepad -skip
qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip
qtmacextras -skip qtmultimedia -skip qtquickcontrols2 -skip qtsensors
-skip qtserialport -skip qtsvg -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwinextras -skip qtx11extras -skip qtxmlpatterns -prefix C:\SDK\Qt\x64
但是,对于 Qt 5.8,此命令行失败并显示以下错误消息:
ERROR: Invalid value given for boolean command line option 'sql-odbc'.
ERROR: Invalid value given for boolean command line option 'sql-sqlite'.
根据 Qt 5.8 documentation,我的命令行似乎没问题。
我该怎么办?
显然参数已重命名。并且文档不是最新的。
正确的命令行是:
C:\SDK\Qt\src\configure -commercial -confirm-license
-debug-and-release -force-debug-info -ltcg -static -angle -nomake examples -nomake tests -sql-odbc -sql-sqlite -qt-zlib -D Z_PREFIX
-skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtpurchasing -skip qttools -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdeclarative -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip
qtmacextras -skip qtmultimedia -skip qtquickcontrols2 -skip qtsensors
-skip qtserialport -skip qtsvg -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwinextras -skip qtx11extras -skip qtxmlpatterns -prefix C:\SDK\Qt\x64
看来我们现在应该使用 -sql<driver>
而不是 -qt-sql<driver>
。
在构建 Qt 5.7 时,我曾经调用以下命令行:
C:\SDK\Qt\src\configure -commercial -confirm-license -debug-and-release -force-debug-info -ltcg -static -angle -nomake examples -nomake tests -qt-sql-odbc -qt-sql-sqlite -qt-zlib -D Z_PREFIX -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtpurchasing -skip qttools -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdeclarative -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip qtmacextras -skip qtmultimedia -skip qtquickcontrols2 -skip qtsensors -skip qtserialport -skip qtsvg -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwinextras -skip qtx11extras -skip qtxmlpatterns -prefix C:\SDK\Qt\x64
但是,对于 Qt 5.8,此命令行失败并显示以下错误消息:
ERROR: Invalid value given for boolean command line option 'sql-odbc'.
ERROR: Invalid value given for boolean command line option 'sql-sqlite'.
根据 Qt 5.8 documentation,我的命令行似乎没问题。
我该怎么办?
显然参数已重命名。并且文档不是最新的。
正确的命令行是:
C:\SDK\Qt\src\configure -commercial -confirm-license -debug-and-release -force-debug-info -ltcg -static -angle -nomake examples -nomake tests -sql-odbc -sql-sqlite -qt-zlib -D Z_PREFIX -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtpurchasing -skip qttools -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdeclarative -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip qtmacextras -skip qtmultimedia -skip qtquickcontrols2 -skip qtsensors -skip qtserialport -skip qtsvg -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwinextras -skip qtx11extras -skip qtxmlpatterns -prefix C:\SDK\Qt\x64
看来我们现在应该使用 -sql<driver>
而不是 -qt-sql<driver>
。