C++ 将exe文件复制到Qt构建目录
我正在尝试编写一个Qt应用程序,它将使用C++ 将exe文件复制到Qt构建目录,c++,qt,qt5,exe,qmake,C++,Qt,Qt5,Exe,Qmake,我正在尝试编写一个Qt应用程序,它将使用QProcess调用ffmpeg.exe来转换媒体文件。我想不出最好的方法来确保ffmpeg.exe文件从我的开发目录复制到构建目录,以便构建(以及以后部署)的应用程序能够访问它 我在我的.pro文件()中看到了有关使用安装参数的信息,但是qmake文档说: 请注意,qmake将跳过可执行的文件 以上所述,如何确保我要用于QProcess的exe文件在构建目录中结束(准备稍后部署)?您可以在构建应用程序时使用QMAKE\u POST\u LINK执行复制命
QProcess
调用ffmpeg.exe
来转换媒体文件。我想不出最好的方法来确保ffmpeg.exe
文件从我的开发目录复制到构建目录,以便构建(以及以后部署)的应用程序能够访问它
我在我的.pro文件()中看到了有关使用安装
参数的信息,但是qmake文档说:
请注意,qmake将跳过可执行的文件
以上所述,如何确保我要用于
QProcess
的exe文件在构建目录中结束(准备稍后部署)?您可以在构建应用程序时使用QMAKE\u POST\u 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))
}
}
}
您应该将要复制到文件路径
变量的文件的路径以及到目标目录的路径添加到目标路径
变量。然后,在构建应用程序时,所有文件都将复制到所有目标
这里,
ffmpeg.exe
在发布模式下被复制到应用程序构建和部署目录,在调试模式下被复制到构建目录。这看起来很棒,我还没有机会尝试它,但一旦我验证它是否有效,我会将其标记为答案。这是否仅适用于Windows?在其他平台上,应使用特定于平台的命令。例如,在Linux上,您应该使用cp
来复制一个文件,例如:您可以根据平台在.pro文件中设置条件。例如,对于Windows使用win32:{…},对于linux使用linux:{…},对于mac Os X使用mac:{…}。