Vs2005下成功调用 av_register_all

来源:互联网 发布:商城首页广告设计 php 编辑:程序博客网 时间:2024/05/21 01:46

在VC下使用FFMPEG编译好的库,不仅仅是把.h,.lib,.dll拷贝到工程中就行了,还需要做以下几步。(此方法适用于自己使用MinGW编译的库,也同样适用于从网上下载的编译好的库,例如http://ffmpeg.zeranoe.com/builds/)。

(1)像其他额外库一样,设置VC的Include路径为你c:\msys\local\include,设置VClib路径为次c:\msys\local\bin,增加操作系统的一个Path c:\msys\local\bin(这一步好像不是必须的)。


(2)将mingw安装目录下的include的inttypes.h,stdint.h,_mingw.h三个文件拷到你ffmpeg库的目录下的include

(3)在_mingw.h文件的结尾处(在#endif 一行之前)添加了一行:
#define __restrict__

(4)把所有long long改成了__int64,如果是直接在vs2008下编译,则这个修改应该是不需要的(这步我没有遇到)

(5)
#ifdef __cplusplus

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "SDL/SDL.h"
//#include "windows.h"

extern "C"
{
        #include "ffmpeg/avutil.h"
        #include "ffmpeg/avcodec.h"
        #include "ffmpeg/avformat.h"
}

#endif
        
#pragma comment(lib,"avutil.lib")
#pragma comment(lib,"avcodec.lib")
#pragma comment(lib,"avformat.lib")

(6)如果遇到error C3861: 'UINT64_C': identifier not found
在common.h里加入定义如下:
#ifndef INT64_C
#define INT64_C(c) (c ## LL)
#define UINT64_C(c) (c ## ULL)

#endif


FFmpeg编译错误

libavdevice/avdevice.c(38) : error C2059: 语法错误:“.”
libavdevice/avdevice.c(40) : error C2059: 语法错误:“,”
libavdevice/avdevice.c(42) : error C2059: 语法错误:“,”
libavdevice/avdevice.c(44) : error C2059: 语法错误:“,”
libavdevice/avdevice.c(46) : error C2059: 语法错误:“,”
libavdevice/avdevice.c(48) : error C2059: 语法错误:“,”
libavdevice/avdevice.c(50) : error C2059: 语法错误:“,”
libavdevice/avdevice.c(52) : error C2059: 语法错误:“,”
libavdevice/avdevice.c(54) : error C2059: 语法错误:“,”
libavdevice/avdevice.c(56) : error C2059: 语法错误:“}”
libavdevice/avdevice.c(85) : fatal error C1903: 无法从以前的错误中恢复;正在停止
编译
make: *** [libavdevice/avdevice.o] Error 2
出现这些错误,不知道什么问题,如果把参数 --toolchain=msvc 去掉就没有问题,但无法在vs2010中使用.
./configure --enable-shared --enable-memalign-hack --prefix=./vs2010_build --extra-cflags="-fno-common" --toolchain=msvc
make
就可以成功


http://blog.sina.com.cn/s/blog_6bcde18101011v2h.html

http://ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b-or-Intel-C_002b_002b-Compiler-for-Windows


http://blog.csdn.net/finewind/article/details/38854517

http://www.cnblogs.com/xylc/p/3683203.html

0 0
原创粉丝点击