ffmpeg的配置方法(vs2017)

1.右键项目名称->属性->c/c++->附加包含目录(include,即ffmpeg的*.h头文件所在的文件夹)以及:链接器->常规->附加库目录(lib ,即含*.lib的文件夹),

并把dll文件复制到项目的根目录下

添加后遇到了一个错误:

严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E1696 无法打开 源 文件 “libavutil/avconfig.h” test D:\…\ffmpeg\libavutil\macros.h 28

去源码中查找,发现没有这个头文件所以得自己写一个:

    /*avconfig.h*/
    #ifndef AVUTIL_AVCONFIG_H
    #define AVUTIL_AVCONFIG_H
    #define AV_HAVE_BIGENDIAN 0
    #define AV_HAVE_FAST_UNALIGNED 0
    #endif

然后就编译成功了

接下来输出一下配置信息,看看有没有配置好

#include<iostream>
#include<stdlib.h>
#include<libavcodec\avcodec.h>

using namespace std;
int main() {
	printf("%s\n" ,avcodec_configuration());
	system("pause");
}

发现报错

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2019 无法解析的外部符号 “char const * __cdecl avcodec_configuration(void)” (?avcodec_configuration@@YAPBDXZ),该符号在函数 _main 中被引用 test D:\…\ffmpegtest\test\源.obj 1

因为这个库用c语言写,而我的项目是c++的,所以要进行预处理

如果出现这个报错:

严重性 代码 说明 项目 文件 行 禁止显示状态
警告 LNK4272 库计算机类型“x64”与目标计算机类型“x86”冲突 ffmpeg_development D:\ffmpeg\lib\avcodec.lib 1

把上面的debug旁边的x86改为x64

//完整代码
#include<iostream>
#include<stdlib.h>
//#include"pch.h"


extern"C" 
{
	#include<libavcodec\avcodec.h>
}
#pragma comment(lib,"avcodec.lib")

using namespace std;
int main() {
	printf("%s\n" ,avcodec_configuration());
}

方法2:在VC++目录添加

方法3:添加环境变量



2022年 March 14日|20:08  作者:
目录: 计算机, 音视频 标签:,, ,
1条评论
订阅
通知
guest
1 Comment
最旧
最新 得票最多
内嵌回复
查看所有评论