复制exe文件到Qt构建目录
Copy exe file to Qt build directory
我正在尝试编写一个 Qt 应用程序,它将使用 QProcess
调用 ffmpeg.exe
来转换媒体文件。我想不出最好的方法来确保 ffmpeg.exe
文件从我的开发目录复制到构建目录,以便构建(和稍后部署)的应用程序可以访问它。
我在我的 .pro 文件 () 中看到了有关使用 INSTALLS
参数的信息,但是 qmake 文档说:
Note that qmake will skip files that are executable.
综上所述,应该如何确保我要用于 QProcess
的 exe 文件最终位于构建目录中(准备好稍后部署)?
您可以在构建应用程序时使用QMAKE_POST_LINK
执行复制命令。只需将其放入您的 .pro 文件即可:
win32:{
file_pathes += "\"$$PWD/Path/To/Files/ffmpeg.exe\""
CONFIG(release, debug|release):{
destination_pathes += $$OUT_PWD/release/
destination_pathes += Path/To/Deploy/Directory
}
else:CONFIG(debug, debug|release):{
destination_pathes += $$OUT_PWD/debug/
}
for(file_path,file_pathes){
file_path ~= s,/,\,g
for(dest_path,destination_pathes){
dest_path ~= s,/,\,g
QMAKE_POST_LINK += $$quote(xcopy $${file_path} $${dest_path} /I /Y $$escape_expand(\n\t))
}
}
}
您应该将要复制的文件的路径添加到 file_pathes
变量,将目标目录的路径添加到 destination_pathes
变量。然后在构建应用程序时将所有文件复制到所有目的地。
此处 ffmpeg.exe
在发布模式下被复制到应用程序构建和部署目录,在调试模式下被复制到构建目录。
我正在尝试编写一个 Qt 应用程序,它将使用 QProcess
调用 ffmpeg.exe
来转换媒体文件。我想不出最好的方法来确保 ffmpeg.exe
文件从我的开发目录复制到构建目录,以便构建(和稍后部署)的应用程序可以访问它。
我在我的 .pro 文件 () 中看到了有关使用 INSTALLS
参数的信息,但是 qmake 文档说:
Note that qmake will skip files that are executable.
综上所述,应该如何确保我要用于 QProcess
的 exe 文件最终位于构建目录中(准备好稍后部署)?
您可以在构建应用程序时使用QMAKE_POST_LINK
执行复制命令。只需将其放入您的 .pro 文件即可:
win32:{
file_pathes += "\"$$PWD/Path/To/Files/ffmpeg.exe\""
CONFIG(release, debug|release):{
destination_pathes += $$OUT_PWD/release/
destination_pathes += Path/To/Deploy/Directory
}
else:CONFIG(debug, debug|release):{
destination_pathes += $$OUT_PWD/debug/
}
for(file_path,file_pathes){
file_path ~= s,/,\,g
for(dest_path,destination_pathes){
dest_path ~= s,/,\,g
QMAKE_POST_LINK += $$quote(xcopy $${file_path} $${dest_path} /I /Y $$escape_expand(\n\t))
}
}
}
您应该将要复制的文件的路径添加到 file_pathes
变量,将目标目录的路径添加到 destination_pathes
变量。然后在构建应用程序时将所有文件复制到所有目的地。
此处 ffmpeg.exe
在发布模式下被复制到应用程序构建和部署目录,在调试模式下被复制到构建目录。