为 Windows 构建 vmaf 无法在 EXE 中包含所有需要的 DLL

问题描述 投票:0回答:0

我正在 Windows 10 开发机器上为另一个使用 MSYS2 的 Windows 系统编译和构建 vmaf。我不是软件开发人员,但希望我能按照 Github 上 Netflix/vmaf 下的这些说明进行操作。

在 Windows 上构建 vmaf

我认为构建过程会将 vmaf 与其所需的所有依赖项静态链接。它没。当我在开发机器上运行构建的 vmaf.exe 时,它抱怨缺少 3 个实际在 C:\msys64\mingw64 目录中找到的 DLL。它们是:

  • libgcc_s_seh-1.dll

  • libstdc++-6.dll

  • libwinpthread-1.dll

我最初使用的是 MSYS2 启动器外壳,但它没有做静态链接。所以我在删除各种目录后重新开始,并尝试了 mingw64 启动器 shell,结果相同。 vmaf.exe 文件缺少这 3 个 DLL。

这就是我所做的。安装 MSYS2 并根据该文档获取编译和链接 vmaf 所需的各种依赖项后,我创建了一个 /projects 目录并使用 git 命令克隆 Netflix/vmaf。我创建了一个 /vmaf-install 目录,更改为 /projects/vmaf 目录并发出了 vmaf“为 Windows 构建 VMAF”文档中指定的这些命令。

介子设置 libvmaf libvmaf/build --buildtype release --default-library static --prefix C:/vmaf-install

介子安装-C libvmaf/build

似乎构建正确,c: maf-install 目录现在包含三个子目录,bin、include 和 lib。如果我在构建它的系统上运行它,它就会工作。

但是,由于构建系统上缺少属于 MSYS2 或 MINGW64 的 3 个 DLL,因此在另一个系统上运行 vmaf.exe 失败。

我假设我做错了什么或使用了错误的构建选项。

如果有人能告诉我如何实际为 Windows 创建静态链接的 vmaf.exe 及其所有必需的 DLL,我将不胜感激。

windows build msys2 vmaf
© www.soinside.com 2019 - 2024. All rights reserved.