我下了个FFmpeg,版本是"FFmpeg-full-SDK-3.2",下载完后里面有3个文件夹,分别是"bin","include","lib".我用的编译环境是VC6.0SP5,是在projects的MFC下编写的程序,程序中加载了2个头文件#include "avcodec.h";#include "avformat.h"和两个静态库#pragma comment(lib,"avcodec")#pragma comment(lib,"avformat").
在定义一些变量,比如AVCodecContext *pCodecCtx;AVFormatContext *pFormatCtx;也是可以识别的,但是用到函数av_register_all();的时候就会出现unresolved external symbol "void __cdecl av_register_all(void)"的错误,好像就静态库没加载一样?为什么?那里的配置问题吗?
------解决方案--------------------------------------------------------
1 你打开 avcodec.h
2 在这两行的
#ifndef AVCODEC_H
#define AVCODEC_H
下面加入如下3行:
#ifdef __cplusplus
extern "C" {
#endif
3 然后在
#endif /* AVCODEC_H */
这行上面加入如下3行
#ifdef __cplusplus
}
#endif
保存后即可。
------解决方案--------------------------------------------------------