我正在 Windows 10 开发机器上为另一个使用 MSYS2 的 Windows 系统编译和构建 vmaf。我不是软件开发人员,但希望我能按照 Github 上 Netflix/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,我将不胜感激。