Qt Qml編譯問題 (QtCharts 和 windeployqt)

編譯命令

# windeployqt --release [你的程序.exe] --qmldir [找到對應的安裝路徑]
windeployqt --release nlgMotor1.exe --qmldir D:\Qt\Qt5.12.5\5.12.5\mingw73_32\qml

# 如果你在qml中使用了 QtCharts,當前windeployqt有bug,所以還需要以下操作
# 進入 D:\Qt\Qt5.12.5\5.12.5\mingw73_32\qml,手動拷貝 QtCharts 的文件夾到程序目錄下
# 然後從 D:\Qt\Qt5.12.5\5.12.5\mingw73_32\bin 拷貝 Qt5Charts.dll 到你的程序目錄
# qml的chart是對Q5tCharts.dll的封裝,並非完全獨立寫的

 

我的錯誤信息

# 沒有拷貝 QtCharts 目錄
QQmlApplicationEngine failed to load component
qrc:/main.qml:3 module "QtCharts" is not installed

# 沒有寫 windeployqt --qml [qml目錄]
QQmlApplicationEngine failed to load component
qrc:/main.qml:1 module "QtQuick" is not installed
qrc:/main.qml:4 module "QtQuick.Controls" is not installed
qrc:/main.qml:2 module "QtQuick.Window" is not installed
qrc:/main.qml:5 module "QtQuick.Layouts" is not installed
qrc:/main.qml:3 module "QtCharts" is not installed
qrc:/main.qml:1 module "QtQuick" is not installed
qrc:/main.qml:4 module "QtQuick.Controls" is not installed
qrc:/main.qml:2 module "QtQuick.Window" is not installed
qrc:/main.qml:5 module "QtQuick.Layouts" is not installed
qrc:/main.qml:3 module "QtCharts" is not installed
qrc:/main.qml:1 module "QtQuick" is not installed
qrc:/main.qml:4 module "QtQuick.Controls" is not installed
qrc:/main.qml:2 module "QtQuick.Window" is not installed
qrc:/main.qml:5 module "QtQuick.Layouts" is not installed
qrc:/main.qml:3 module "QtCharts" is not installed
qrc:/main.qml:1 module "QtQuick" is not installed
qrc:/main.qml:4 module "QtQuick.Controls" is not installed
qrc:/main.qml:2 module "QtQuick.Window" is not installed
qrc:/main.qml:5 module "QtQuick.Layouts" is not installed
qrc:/main.qml:3 module "QtCharts" is not installed
qrc:/main.qml:1 module "QtQuick" is not installed
qrc:/main.qml:4 module "QtQuick.Controls" is not installed
qrc:/main.qml:2 module "QtQuick.Window" is not installed
qrc:/main.qml:5 module "QtQuick.Layouts" is not installed

 

 

windeployqt編譯語法

  Usage: windeployqt [options] [files]
  Qt Deploy Tool 5.12.2

  The simplest way to use windeployqt is to add the bin directory of your Qt
  installation (e.g. <QT_DIR\bin>) to the PATH variable and then run:
    windeployqt <path-to-app-binary>
  If ICU, ANGLE, etc. are not in the bin directory, they need to be in the PATH
  variable. If your application uses Qt Quick, run:
    windeployqt --qmldir <path-to-app-qml-files> <path-to-app-binary>

  Options:
    -?, -h, --help            Displays this help.
    -v, --version             Displays version information.
    --dir <directory>         Use directory instead of binary directory.
    --libdir <path>           Copy libraries to path.
    --plugindir <path>        Copy plugins to path.
    --debug                   Assume debug binaries.
    --release                 Assume release binaries.
    --pdb                     Deploy .pdb files (MSVC).
    --force                   Force updating files.
    --dry-run                 Simulation mode. Behave normally, but do not
                              copy/update any files.
    --no-patchqt              Do not patch the Qt5Core library.
    --no-plugins              Skip plugin deployment.
    --no-libraries            Skip library deployment.
    --qmldir <directory>      Scan for QML-imports starting from directory.
    --no-quick-import         Skip deployment of Qt Quick imports.
    --no-translations         Skip deployment of translations.
    --no-system-d3d-compiler  Skip deployment of the system D3D compiler.
    --compiler-runtime        Deploy compiler runtime (Desktop only).
    --no-compiler-runtime     Do not deploy compiler runtime (Desktop only).
    --webkit2                 Deployment of WebKit2 (web process).
    --no-webkit2              Skip deployment of WebKit2.
    --json                    Print to stdout in JSON format.
    --angle                   Force deployment of ANGLE.
    --no-angle                Disable deployment of ANGLE.
    --no-opengl-sw            Do not deploy the software rasterizer library.
    --list <option>           Print only the names of the files copied.
                              Available options:
                               source:   absolute path of the source files
                               target:   absolute path of the target files
                               relative: paths of the target files, relative
                                         to the target directory
                               mapping:  outputs the source and the relative
                                         target, suitable for use within an
                                         Appx mapping file
    --verbose <level>         Verbose level (0-2).

  Qt libraries can be added by passing their name (-xml) or removed by passing
  the name prepended by --no- (--no-xml). Available libraries:
  bluetooth concurrent core declarative designer designercomponents enginio
  gamepad gui qthelp multimedia multimediawidgets multimediaquick network nfc
  opengl positioning printsupport qml qmltooling quick quickparticles quickwidgets
  script scripttools sensors serialport sql svg test webkit webkitwidgets
  websockets widgets winextras xml xmlpatterns webenginecore webengine
  webenginewidgets 3dcore 3drenderer 3dquick 3dquickrenderer 3dinput 3danimation
  3dextras geoservices webchannel texttospeech serialbus webview

  Arguments:
    [files]                   Binaries or directory containing the binary.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章