首页 文章

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

提问于
浏览
2

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

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

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

以上所有说的,如何确保我想用于 QProcess 的exe文件最终在构建目录中(准备稍后部署)?

1 回答

  • 3

    构建应用程序时,可以使用 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 被复制到应用程序构建并以发布模式部署目录,并以调试模式构建目录 .

相关问题