Don*_*alo 13 c++ build-automation qt qt-creator
我使用Qt Creator 2.2.1和Qt 4.7.4(32位)构建了一个程序,其输出是可执行文件.使用DependencyWalker打开exe,它显示exe使用以下DLL:
我希望在构建所有相关文件(在某些其他项目中可能不同)之后,除了Windows特定文件(上面列表中的前两个)之外,它们将自动复制到exe所在的目录中.
如何在不使用命令行脚本的情况下在Qt Creator或Qt系统中执行此操作?谢谢.
Sco*_*ant 13
在QT 5.3中,您可以使用windeployqtqt工具自动复制所需的库.
项目的.pro文件的以下添加应该可以解决问题,但您可能需要根据您的具体情况进行一些调整.
isEmpty(TARGET_EXT) {
win32 {
TARGET_CUSTOM_EXT = .exe
}
macx {
TARGET_CUSTOM_EXT = .app
}
} else {
TARGET_CUSTOM_EXT = $${TARGET_EXT}
}
win32 {
DEPLOY_COMMAND = windeployqt
}
macx {
DEPLOY_COMMAND = macdeployqt
}
CONFIG( debug, debug|release ) {
# debug
DEPLOY_TARGET = $$shell_quote($$shell_path($${OUT_PWD}/debug/$${TARGET}$${TARGET_CUSTOM_EXT}))
} else {
# release
DEPLOY_TARGET = $$shell_quote($$shell_path($${OUT_PWD}/release/$${TARGET}$${TARGET_CUSTOM_EXT}))
}
# # Uncomment the following line to help debug the deploy command when running qmake
# warning($${DEPLOY_COMMAND} $${DEPLOY_TARGET})
# Use += instead of = if you use multiple QMAKE_POST_LINKs
QMAKE_POST_LINK = $${DEPLOY_COMMAND} $${DEPLOY_TARGET}
Run Code Online (Sandbox Code Playgroud)
我会修改项目的*.pro文件并使用INSTALLS.要实际导致文件移动,您需要运行make install.在Qt Creator中,您可以通过进入"Projects"部分并添加新的构建步骤将其添加为正常构建过程的一部分.
## This sets MY_LIB_FILES the libs you want and should also correctly resolve
## the location of the libs.
win32 { ## For Windows builds
# Note: Check to make sure of file name case
MY_LIB_FILES += $$QMAKE_LIBDIR_QT/MINGWM10.DLL
MY_LIB_FILES += $$QMAKE_LIBDIR_QT/LIBGCC_S_DW2-1.DLL
MY_LIB_FILES += $$QMAKE_LIBDIR_QT/QTCORE4.DLL
MY_LIB_FILES += $$QMAKE_LIBDIR_QT/QTGUI4.DLL
}
unix { ## For unix builds
# MY_LIB_FILES += $$QMAKE_LIBDIR_QT/...xxxxxx....
}
## Define what files are 'extra_libs' and where to put them
extra_libs.files = MY_LIB_FILES
extra_libs.path = $$DESTDIR
## Tell qmake to add the moving of them to the 'install' target
INSTALLS += extra_libs
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13379 次 |
| 最近记录: |