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
- Vs2005下成功调用 av_register_all
- av_register_all()
- live555学习笔记1:在vs2005下调试live555,成功!
- win7 下ffmpeg release 版本av_register_all崩溃问题
- vs2005下调用存储过程并用Datareader读出的方法
- VS2005下MFC调用Windows Media Player小结
- VS2005环境下生成静态lib库及调用方法
- VS2005环境下生成静态lib库及调用方法
- VS2005环境下生成静态lib库及调用方法
- VS2005中建立C++下的智能设备工程无法成功的解决办法
- 成功将log4cpp升级到了vs2005版本,总结下编译时报错及相应的解决方法
- VS2003成功升级到VS2005
- c#.net下成功调用c++编写的标准dll
- VS2005调用客户端脚本
- vs2005调用matlab引擎
- vs2005调用matlab引擎
- VS2005调用MSRS2008问题
- VS2005 调用堆栈
- 【JVM】动态内存回收机制---GC (一)
- OpenEmbedded 中文手册
- php判断是否为手机访问
- STM---串口发送数据,第一个数据无法发送的解决方法
- VC/MFC 实现文件拖拽获取文件名(WM_DROPFILES)
- Vs2005下成功调用 av_register_all
- Windows10 无法识别手机MTP问题
- C#序列化与反序列化类集合
- 【android学习】onSaveInstanceState使用详解-之解决问题:android程序崩溃后,app异常
- oj期中测验--C语言实验——for循环打印图形(循环结构)(1954)
- java的System.getProperty()方法可以获取的值
- 单工、半双工、全双工的区别
- OpenCV Python的安裝與設定
- Java动态代理