这儿存在一个问题。我需要将 ffmpeg(尤其是 libavcodec)静态链接到 Visual Studio 2008 项目中。
我在互联网上找到了一些视觉工作室解决方案,但它们很旧(大约 0.6 版本),我需要最新版本,所以这种方式不适合我。
接下来,我使用 MinGW/msys 进行静态构建(使用 --enable-satic --disable-shared 标志)并在输出中获得 (*.a) 库。在 Visual Studio 中,我转到链接器属性并添加到 Additional Dependencies(Linker->Input) libvacodec.a 和 libgcc.a。然后我写了一个简单的应用程序:
#include <stdio.h>
#include <stdlib.h>
extern "C"
{
#ifdef __STDC_CONSTANT_MACROS
#define __STDC_CONSTANT_MACROS
#endif
#include "libavcodec/avcodec.h"
}
#include "libavformat/avformat.h"
int main()
{
av_register_all();
return 0;
}
此代码编译成功,但链接失败。得到一个错误:
error LNK2019: unresolved external symbol "void __cdecl av_register(void)" (?av_register_all@@YAXXZ) referenced in function _main.
所以,有两个问题:
如何将 Visual Studio 应用程序与 libavcodec.a 链接?
如果可能的话,我在哪里可以获得包含 ffmpeg 最新版本的 Visual Studio 解决方案?
提前致谢!!