将 exe 文件复制到 Qt 构建目录



我正在尝试编写一个Qt应用程序,该应用程序将使用QProcess调用ffmpeg.exe来转换媒体文件。我无法找到确保将ffmpeg.exe文件从我的开发目录复制到构建目录的最佳方法,以便构建的(以及以后部署的)应用程序可以访问它。

我已经在我的 .pro 文件 (https://stackoverflow.com/a/13168287) 中看到有关使用 INSTALLS 参数的信息,但 qmake 文档说:

请注意,qmake 将跳过可执行文件。

综上所述,应该如何确保我想用于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(nt))
         }
    }
}

应将要复制到变量的文件的路径添加到变量file_pathes并将目标目录的路径添加到变量destination_pathes。然后,在构建应用程序时,所有文件都将复制到所有目标。

在这里,ffmpeg.exe被复制到发布模式下的应用程序构建和部署目录,以及调试模式下的构建目录。

相关内容

  • 没有找到相关文章

最新更新