我正在尝试编译 alpha_encoder )( webm-tools 下的The WebM Project的小实用程序)。
我之前在c:\FFcompiler
下安装了 msys2 (由build_locally_with_various_option_prompts.bat下载和配置)。花了很多时间,但我设法编译 ffmpeg ,所以我决定使用它(我认为它会这样做)。这就是我到目前为止所做的事情。
首先,我在/cygdrive/c/FFcompiler/ffmpeg_local_builds/sandbox/win32/libvpx-1.4.0/third_party/
下克隆了 webm-tools 。有一个Makefile
所以我试图运行make
:
$ cd /cygdrive/c/FFcompiler/ffmpeg_local_builds/sandbox/win32/libvpx-1.4.0/third_party/
$ git clone https://chromium.googlesource.com/webm/webm-tools.git
$ cd webm-tools/alpha_encoder/
$ make
但 g ++ 抱怨mkvparser.hpp
并不存在。命令是
g++ -c -W -Wall -O3 -g -I../../libwebm alpha_encoder.cc -o alpha_encoder.o
在搜索网页后,似乎 webm-tools 依赖于 libwebm ,并期望将其作为 webm-tools 。所以......
$ cd ../..
$ git clone https://chromium.googlesource.com/webm/libwebm.git
$ cd libwebm
现在,什么? README.libwebm
告诉他们使用mingw-w64'来交叉编译libwebm for Windows首先,我必须像cmake
这样运行cmake -DCMAKE_TOOLCHAIN_FILE=path/to/libwebm/build/mingw-w64_toolchain.cmake path/to/libwebm
。就我而言:
cmake -DCMAKE_TOOLCHAIN_FILE=build/mingw-w64_toolchain.cmake .
cmake
无法找到 i686-w64-mingw32-g ++ 。谷歌搜索后,似乎最简单的解决方法是将bin
mingw-w64-i686
添加到PATH
。
$ export PATH=/cygdrive/c/FFcompiler/ffmpeg_local_builds/sandbox/cross_compilers/mingw-w64-i686/bin:$PATH
在此之后,现在cmake
成功完成并创建Makefile
,但make
停止并显示错误:
/cygdrive/c/FFcompiler/ffmpeg_local_builds/sandbox/win32/libvpx-1.4.0/third_part
y/libwebm/common/file_util.cc:44:39: error: 'tmpnam_s' was not declared in this
scope
errno_t err = tmpnam_s(tmp_file_name);
^
我已经搜索过这个错误,但是我被卡住了。我错过了什么?