问题解决:FFmpeg视频编解码库,无法解析的外部信号
来源:互联网 发布:劫持刘嘉玲的是谁知乎 编辑:程序博客网 时间:2024/04/29 16:39
在编译FFmpeg相关项目时,可能会出现:
error LNK2019: 无法解析的外部符号 "int __cdecl avpicture_fill(struct AVPicture *,unsigned char const *,enum AVPixelFormat,int,int)" (?avpicture_fill@@YAHPAUAVPicture@@PBEW4AVPixelFormat@@HH@Z),该符号在函数 "bool __cdecl YV12ToBGR24_FFmpeg(unsigned char *,unsigned char *,int,int)" (?YV12ToBGR24_FFmpeg@@YA_NPAE0HH@Z) 中被引用error LNK2019: 无法解析的外部符号 "void __cdecl sws_freeContext(struct SwsContext *)" (?sws_freeContext@@YAXPAUSwsContext@@@Z),该符号在函数 "bool __cdecl YV12ToBGR24_FFmpeg(unsigned char *,unsigned char *,int,int)" (?YV12ToBGR24_FFmpeg@@YA_NPAE0HH@Z) 中被引用
这种类似情况,在检查包含目录、库目录、链接器输入和系统环境变量均设置无误的情况下,包含的文件要写成以下形式:
extern "C"{ #include <libavcodec\avcodec.h> #include <libavformat\avformat.h> #include <libswscale\swscale.h> #include <libavutil\pixfmt.h> #include <libavutil\imgutils.h>};
这种情况是因为,头文件中的函数定义在编译为 C 程序的文件中,而头文件是在 C++ 文件中不带 extern “C” 修饰符声明的。在此情况下,需要添加extern "C"
修饰符。
类似的,定义在编译为 C 程序的文件中的符号, 若要在C++ 文件中进行声明,不可使用:
extern int i; extern void g();
而应该使用:
extern "C" int i; extern "C" void g();
详细的解释:http://www.cnblogs.com/rollenholt/archive/2012/03/20/2409046.html
2 0
- FFmpeg视频编解码库,无法解析的外部信号
- 问题解决:FFmpeg视频编解码库,无法解析的外部信号
- FFmpeg 视频、音频编解码的例子
- ffmpeg 命令行视频编解码
- Linux/Windows 下分别编译音视频编解码库ffmpeg的流程和注意事项
- 基于ffmpeg的简单音视频编解码的例子
- 基于ffmpeg的简单音视频编解码的例子
- 基于FFMPEG 的跨平台视频编解码研究
- 嵌入式Linux下基于FFmpeg的视频硬件编解码
- 嵌入式Linux下基于FFmpeg的视频硬件编解码
- FFmpeg的远程视频监控系统编解码
- 基于FFmpeg的远程视频监控系统编解码
- FFmpeg支持的音频和视频编解码格式
- 视频编解码之ffmpeg命令行工具的常用命令汇总
- 嵌入式Linux下基于FFmpeg的视频硬件编解码
- libav/FFMPEG 视频音频编解码库使用
- FFmpeg 音视频编解码开源库
- 求ffmpeg视频编解码兼职
- 让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法
- springmvc中针对一个controller方法配置两个url请求
- cocoaPods使用细节
- 模型的应用 && Xib &&代理模式的应用【应用管理】
- [机器学习]机器学习之数学知识回顾-矩阵及优化理论
- 问题解决:FFmpeg视频编解码库,无法解析的外部信号
- 改变体质,预防癌症第一步 (分享大家学习)
- 换手率短线炒股神器测评
- 尾递归
- java编程思想(读书笔记):8.接口和内隐类
- linux 设置共享目录
- 平台开发中访问窗体其他属性
- CFileDialog使用注意事项
- labview做上位机+3D显示+MPU6050