首页 > 解决方案 > Qt 5.12.1 MSVC 静态构建 .qmake.super

问题描述

在使用 MSVC 2015 构建 Qt 5.12.1 静态后,我可以成功构建我的所有 Qt 项目,但包含 svg 模块的项目除外。在该项目上运行 qmake 会产生Project ERROR: Unknown module(s) in QT: svg

如果我将项目移动到 Qt 构建路径(即 QTDIR/my-project)下,它构建得很好。或者,如果我将文件 QTDIR/.qmake.super 复制到我的项目的根目录中,我也可以正常构建。

因此,似乎要使用 svg 模块进行构建,我需要项目路径层次结构中的 .qmake.super 文件。也许我错过了一步,或者需要定义一个额外的环境变量。

这是我的配置命令:

configure ^
    -static ^
    -opensource ^
    -confirm-license ^
    -nomake tests ^
    -nomake examples ^
    -debug-and-release ^
    -platform win32-msvc2015 ^
    -openssl-linked -I %OPENSSL_DIR%\include -L %OPENSSL_DIR%\lib

添加 .qmake.super 的内容:

QTREPOS += C:/Qt/x64/qtbase
QMAKEMODULES += C:/Qt/x64/qtbase/mkspecs/modules
QTREPOS += C:/Qt/x64/qtnetworkauth
QMAKEMODULES += C:/Qt/x64/qtnetworkauth/mkspecs/modules
QTREPOS += C:/Qt/x64/qtmacextras
QMAKEMODULES += C:/Qt/x64/qtmacextras/mkspecs/modules
QTREPOS += C:/Qt/x64/qtx11extras
QMAKEMODULES += C:/Qt/x64/qtx11extras/mkspecs/modules
QTREPOS += C:/Qt/x64/qtandroidextras
QMAKEMODULES += C:/Qt/x64/qtandroidextras/mkspecs/modules
QTREPOS += C:/Qt/x64/qtserialport
QMAKEMODULES += C:/Qt/x64/qtserialport/mkspecs/modules
QTREPOS += C:/Qt/x64/qtserialbus
QMAKEMODULES += C:/Qt/x64/qtserialbus/mkspecs/modules
QTREPOS += C:/Qt/x64/qtimageformats
QMAKEMODULES += C:/Qt/x64/qtimageformats/mkspecs/modules
QTREPOS += C:/Qt/x64/qtactiveqt
QMAKEMODULES += C:/Qt/x64/qtactiveqt/mkspecs/modules
QTREPOS += C:/Qt/x64/qtsvg
QMAKEMODULES += C:/Qt/x64/qtsvg/mkspecs/modules
QTREPOS += C:/Qt/x64/qtdeclarative
QMAKEMODULES += C:/Qt/x64/qtdeclarative/mkspecs/modules
QTREPOS += C:/Qt/x64/qtremoteobjects
QMAKEMODULES += C:/Qt/x64/qtremoteobjects/mkspecs/modules
QTREPOS += C:/Qt/x64/qtscxml
QMAKEMODULES += C:/Qt/x64/qtscxml/mkspecs/modules
QTREPOS += C:/Qt/x64/qtpurchasing
QMAKEMODULES += C:/Qt/x64/qtpurchasing/mkspecs/modules
QTREPOS += C:/Qt/x64/qtcanvas3d
QMAKEMODULES += C:/Qt/x64/qtcanvas3d/mkspecs/modules
QTREPOS += C:/Qt/x64/qtwebsockets
QMAKEMODULES += C:/Qt/x64/qtwebsockets/mkspecs/modules
QTREPOS += C:/Qt/x64/qtwebglplugin
QMAKEMODULES += C:/Qt/x64/qtwebglplugin/mkspecs/modules
QTREPOS += C:/Qt/x64/qtwebchannel
QMAKEMODULES += C:/Qt/x64/qtwebchannel/mkspecs/modules
QTREPOS += C:/Qt/x64/qtgamepad
QMAKEMODULES += C:/Qt/x64/qtgamepad/mkspecs/modules
QTREPOS += C:/Qt/x64/qt3d
QMAKEMODULES += C:/Qt/x64/qt3d/mkspecs/modules
QTREPOS += C:/Qt/x64/qtwayland
QMAKEMODULES += C:/Qt/x64/qtwayland/mkspecs/modules
QTREPOS += C:/Qt/x64/qtconnectivity
QMAKEMODULES += C:/Qt/x64/qtconnectivity/mkspecs/modules
QTREPOS += C:/Qt/x64/qtsensors
QMAKEMODULES += C:/Qt/x64/qtsensors/mkspecs/modules
QTREPOS += C:/Qt/x64/qtgraphicaleffects
QMAKEMODULES += C:/Qt/x64/qtgraphicaleffects/mkspecs/modules
QTREPOS += C:/Qt/x64/qtquickcontrols2
QMAKEMODULES += C:/Qt/x64/qtquickcontrols2/mkspecs/modules
QTREPOS += C:/Qt/x64/qtquickcontrols
QMAKEMODULES += C:/Qt/x64/qtquickcontrols/mkspecs/modules
QTREPOS += C:/Qt/x64/qtlocation
QMAKEMODULES += C:/Qt/x64/qtlocation/mkspecs/modules
QTREPOS += C:/Qt/x64/qtxmlpatterns
QMAKEMODULES += C:/Qt/x64/qtxmlpatterns/mkspecs/modules
QTREPOS += C:/Qt/x64/qtmultimedia
QMAKEMODULES += C:/Qt/x64/qtmultimedia/mkspecs/modules
QTREPOS += C:/Qt/x64/qtspeech
QMAKEMODULES += C:/Qt/x64/qtspeech/mkspecs/modules
QTREPOS += C:/Qt/x64/qtvirtualkeyboard
QMAKEMODULES += C:/Qt/x64/qtvirtualkeyboard/mkspecs/modules
QTREPOS += C:/Qt/x64/qtdatavis3d
QMAKEMODULES += C:/Qt/x64/qtdatavis3d/mkspecs/modules
QTREPOS += C:/Qt/x64/qtcharts
QMAKEMODULES += C:/Qt/x64/qtcharts/mkspecs/modules
QTREPOS += C:/Qt/x64/qtwinextras
QMAKEMODULES += C:/Qt/x64/qtwinextras/mkspecs/modules
QTREPOS += C:/Qt/x64/qttools
QMAKEMODULES += C:/Qt/x64/qttools/mkspecs/modules
QTREPOS += C:/Qt/x64/qtscript
QMAKEMODULES += C:/Qt/x64/qtscript/mkspecs/modules
QTREPOS += C:/Qt/x64/qtwebengine
QMAKEMODULES += C:/Qt/x64/qtwebengine/mkspecs/modules
QTREPOS += C:/Qt/x64/qtwebview
QMAKEMODULES += C:/Qt/x64/qtwebview/mkspecs/modules
QTREPOS += C:/Qt/x64/qttranslations
QMAKEMODULES += C:/Qt/x64/qttranslations/mkspecs/modules
QTREPOS += C:/Qt/x64/qtdoc
QMAKEMODULES += C:/Qt/x64/qtdoc/mkspecs/modules
QTREPOS += C:/Qt/x64/qtqa
QMAKEMODULES += C:/Qt/x64/qtqa/mkspecs/modules

标签: c++qtvisual-c++visual-studio-2015qmake

解决方案


简单修复:在配置中指定一个前缀,然后进行 nmake 安装。安装的版本在任何地方都不需要 .qmake.super 。


推荐阅读