在mingw32环境下 FFmpeg中 ./configure --enable-libutvideo 是出现 ERROR: utvideo not found.
网上查了不少资料,有各种方法,修改代码等等,我认为都不是正解.首先要清楚的是utvideo的开发环境.
编译utvideo需要 vs2005+
Microsoft SDKs 6.1.所以这两个都要安装.这两个都是1G以上的安装包.
问题原因两种 一是没有正确编译libutvideo.a 还有/MinGW/include/utvideo/Codec.h有问题
第一正确编译libutvideo.a,这个需要
cross_compile交叉编译, mingw32 默认安装就没有交叉编译环境
需要安装
w32api-3.14-3-msys-1.0.12-dev.tar.lzma,下载地址
http://sourceforge.net/projects/mingw/files/MSYS/msysdev/w32api/
下载之后把include lib目录下的文件拷贝到/MinGW/下
还有utvideo-xx.x.x 原代码文件中 GNUmakefile 中
CROSS_PREFIX=
#WINSDK_ROOT="/c/Program Files/Microsoft SDKs/Windows/v6.1"
#CPPFLAGS=-I/usr/include/w32api -I$(WINSDK_ROOT)/Include
修改成
CROSS_PREFIX=
ming32-
WINSDK_ROOT="/c/Program Files/Microsoft SDKs/Windows/v6.1"
CPPFLAGS=-I/
mingw/include/w32api -I$(WINSDK_ROOT)/Include
之后make / make install就生成libutvideo.a
第二正确编译utvideo之后在FFmpeg中./configure --enable-libutvideo 还出现ERROR: utvideo not found.
include/utvideo/Codec.h:31:24: error: 'INT_PTR' has not been declared
这是\MinGW\include\utvideo\Codec.h文件中没有定义INT_PTR
在\MinGW\include\utvideo\
Codec.h文件中添加
windows.h 就可以
#pragma once
#include <windows.h> //<-----------