音视频技术应用(2)ffmpeg项目创建和源码pdb调试设置

1. 拷贝库文件和头文件

在任意位置新建一个空目录,分别创建以下几个文件夹:

bin: 用于存放刚才编译好的动态链接库文件。
include: 用于存放头文件。
lib: 用于存放后缀名为.lib的库文件,实际上只是库的路径。
src: 用于存放测试的源码。
tools: 用于存放ffmpeg 的源码,方便将来调试的时候能够进入到ffmpeg的源码。

在bin目录下新建一个x86目录,将刚才编译好的ffmpeg动态链接库,fdk-aac的动态链接库,x264, x265的动态链接库 全部拷贝到当前目录下:

在lib 目录下新建一个x86目录,将 ffmpeg 编译生成的库文件(以.lib结尾) 放置到该目录下:

拷贝ffmepg的头文件到 include 目录下:

将ffmpeg4.3的源码放置到tools目录下:

2. 新建一个空项目

打开VS2019, 选择“创建新项目”

 点击“创建控制台应用”,然后点击下一步:

 位置选择为我们刚才创建的源码目录,比如我刚才创建的位置就在 “D:\code\src”, 项目名称命名为:first_ffmpeg, 勾选“将解决方案和项目放在同一目录中”:

点击“创建”,就完成了新项目的创建。

3. 配置项目属性

右击“first_ffmpeg”,选择“属性”:

然后选择“C/C++”, 点击右侧的“附加包含目录”,点击右侧的下拉箭头,点击“编辑”:

输入include 目录的相对路径:..\..\include  

然后点击“确定”。

头文件路径添加好了,接下来我们来添加库文件的路径:
依次选择“链接器”-》“附加库目录”-》然后输入 ..\..\lib\x86

接下来配置输出目录。这个输出目录指的是编译生成的.exe文件和pdb调试文件,我们把这两种类型的文件放置到同一个目录下。

选择配置属性-“常规”-输出目录,将输出目录修改为:..\..\bin\x86

接下来配置调试目录,我们把调试目录的地址修改为跟上面的工作目录一致:

选择“配置属性”-“调试”-“工作目录”, 将工作目录修改为 ..\..\bin\x86 

4. 编写一份测试code, 检查ffmpeg是否可以顺利编译通过:

修改 first_ffmpeg.cpp 为如下代码:

#include <iostream>

using namespace std;

extern "C" { // 指定函数是C语言函数,以C语言的方式去编译
#include <libavcodec/avcodec.h>
}

// 以预处理指令的方式导入库
#pragma comment(lib, "avcodec.lib")

int main()
{
    cout << "Hello World!" << endl;;
    cout << avcodec_configuration() << endl;
}

点击顶部的 “本地Windows调试器”按钮编译运行,如果能够在控制台正常打印出avcodec的相关配置信息,则说明ffmpeg已经可以顺利编译成功了。

接下来测试下是否可以进入到ffmpeg当中的源码:

在第15行添加断点,点击F5 开始调试,然后点击F11, 尝试进入到avcodec_configuration()函数当中,如果能顺利进入到该函数当中,则说明源码也关联成功了。

注:第10行我们采用的是预处理的方式导入库,如果不想使用这种方式,可以右击“属性”-“链接器”-“附加依赖项”,点击右侧的下拉箭头,点“编辑” 输入avcodec.lib

使用这种方式也可以顺利导入库。

原文地址:https://www.cnblogs.com/yongdaimi/p/15511209.html