【发布时间】:2017-10-06 07:59:16
【问题描述】:
我尝试使用此 doc 部署我的自定义小部件,但是当我编译时只复制 .h 和 dll,.lib 和 .pdb 不是:
这是我配置复制指令时的 .pro
message(Building...)
QT += widgets designer
PLUGIN_CLASS_NAME = QKWidgets
QTDIR_build {
message(Qt Build)
# This is only for the Qt build. Do not use externally. We mean it.
PLUGIN_TYPE = designer
load(qt_plugin)
CONFIG += install_ok
} else {
message(Public Build)
# Public example:
TARGET = $$qtLibraryTarget($$TARGET)
CONFIG += plugin debug_and_release
TEMPLATE = lib
target.path = $$[QT_INSTALL_PLUGINS]/designer
#INSTALLS += target
headersDataFiles.path = $$[QT_INSTALL_HEADERS]/$$PLUGIN_CLASS_NAME/
headersDataFiles.files = $$PWD/*.h
#INSTALLS += headersDataFiles
libraryFiles.path = $$[QT_INSTALL_LIBS]
CONFIG(debug, debug|release): libraryFiles.files = $$OUT_PWD/debug/*.lib $$OUT_PWD/release/*.pdb
CONFIG(release, debug|release): libraryFiles.files = $$OUT_PWD/release/*.lib
INSTALLS += target headersDataFiles libraryFiles
message(Lib dest: $$[QT_INSTALL_LIBS])
message(Lib src: $$libraryFiles.files)
}
message(General Build)
编辑: install_libraryFiles 没有出现在 Makefile 中
编辑2:
输出:
Project MESSAGE: Building...
Project MESSAGE: Public Build
Project MESSAGE: Lib dest: C:/Qt/Qt5.9.0/5.9.1/msvc2017_64/lib
Project MESSAGE: Lib src: C:/Users/SD/Documents/Studio/MyProject/Widgets/Build/Release/release/*.lib
Project MESSAGE: General Build
Project MESSAGE: Building...
Project MESSAGE: Public Build
Project MESSAGE: Lib dest: C:/Qt/Qt5.9.0/5.9.1/msvc2017_64/lib
Project MESSAGE: Lib src: C:/Users/SD/Documents/Studio/MyProject/Widgets/Build/Release/release/*.lib
Project MESSAGE: General Build
Project MESSAGE: Building...
Project MESSAGE: Public Build
Project MESSAGE: Lib dest: C:/Qt/Qt5.9.0/5.9.1/msvc2017_64/lib
Project MESSAGE: Lib src: C:/Users/SD/Documents/Studio/MyProject/Widgets/Build/Release/debug/*.lib C:/Users/SD/Documents/Studio/MyProject/Widgets/Build/Release/release/*.pdb
Project MESSAGE: General Build
【问题讨论】:
-
"message(Lib src: $$libraryFiles.files)" 打印什么?你能显示生成的 Makefile 吗?
-
我编辑我的帖子。我明白为什么 .lib 没有被复制。这是因为 lib 不是在好时机创建的。当我第二次启动 qmake 时,
libraryFiles出现在我的 Makefile 中。一个解决方案是:QMAKE_POST_LINK 但我不喜欢这个。
标签: qt deployment makefile compilation