我有一個項目的結構是這樣的:QML DIR沒有釋放
project
-project.pro (subdirs)
|-app
| |-app.pro (app)
| |-QML
| |-CPP
| |-ICONS
|
|-lib
|-lib.pro (subdirs, copied from qtvirtualkeyboard/src)
|-config.pri (copied from qtvirtualkeyboard/src)
|-virtualkeyboard
|-...
凡lib
-dir等於qtvirtualkeyboard/src只用dir和項目從SRC到LIB改名。
現在,當我點擊在QtCreator
運行一切都正常運行,但因爲我想與windeployqt
問題部署它就是QML
-dir不會被複制到release
-dir。
當我部署它(與make install
其次爲windeployqt
),我得到的文件結構:
project
|-.moc
|-.obj
|-.pch
|-.rcc
|-debug
|-QML <-- This should not be here, but a subdir of release
|-release
|-app.exe
|-...otherstuff
我想可能是(我的錯)的.qmake.conf
的錯,我不明白並從qtvirtualkeyboard
.qmake.conf複製:
load(qt_build_config)
MODULE_VERSION = 5.8.1
.qmake.stash:
QMAKE_DEFAULT_INCDIRS = \
D:/Qt/Qt5.7.0/Tools/mingw530_32/lib/gcc/i686-w64-mingw32/5.3.0/include \
D:/Qt/Qt5.7.0/Tools/mingw530_32/lib/gcc/i686-w64-mingw32/5.3.0/include-fixed \
D:/Qt/Qt5.7.0/Tools/mingw530_32/i686-w64-mingw32/include \
D:/Qt/Qt5.7.0/Tools/mingw530_32/i686-w64-mingw32/include/c++ \
D:/Qt/Qt5.7.0/Tools/mingw530_32/i686-w64-mingw32/include/c++/i686-w64-mingw32 \
D:/Qt/Qt5.7.0/Tools/mingw530_32/i686-w64-mingw32/include/c++/backward
QMAKE_DEFAULT_LIBDIRS = \
D:/Qt/Qt5.7.0/Tools/mingw530_32/lib/gcc/i686-w64-mingw32/5.3.0 \
D:/Qt/Qt5.7.0/Tools/mingw530_32/lib/gcc \
D:/Qt/Qt5.7.0/Tools/mingw530_32/i686-w64-mingw32/lib \
D:/Qt/Qt5.7.0/Tools/mingw530_32/lib
或在projectfiles,其中lib.pro
的一個直接從庫中複製的,並在自身app.pro
運行良好,在我搬到它作爲一個子項目project.pro
。
(EDIT)app.pro
TEMPLATE = app
QT += qml quick
CONFIG += c++11 \
disable-desktop
SOURCES += main.cpp \
...
RESOURCES += \
ICONS\ICONS.qrc
QML_IMPORT_PATH =
include(deployment.pri)
DISTFILES += \
QML/...
...
HEADERS += \
CPP/...
...
qmlsrc.files = QML/*
qmlsrc.path = $$OUT_PWD/QML
INSTALLS += qmlsrc
我怎麼能解決這個問題,besids加入自定義部署步驟複製QML-DIR?在@KevinKrammer的回答之後,我總結出問題在於:qmlsrc.path = $$OUT_PWD/QML
。 OUT_PWD
包含生成Makefile的路徑。這是對的,如果我只跑app.pro
,但是當我運行project.pro
它應該相當於$$OUT_PWD/[debug,relase,...]/QML
所以$$PATH_TO_THE_EXE/QML
有沒有寫,不知怎的,那一般的方式,它的工作原理在兩種情況下:當我運行project.pro
當我運行app.pro
並在兩者中,release
和debug
,模式?
我編輯了我的答案,建議調試/發佈差異的選項處理 –