gpt4 book ai didi

visual-studio - 将 ffmpeg/avcodec 与 Visual Studio 2015 链接时无法解析的外部符号?

转载 作者:行者123 更新时间:2023-12-04 23:28:10 27 4
gpt4 key购买 nike

我正在尝试使用 Visual Studio 2015 构建 ffmpeg/avcodec 库,它给了我以下链接错误:

allcodecs.obj : error LNK2001: unresolved external symbol ff_h263_vaapi_hwaccel 
allcodecs.obj : error LNK2001: unresolved external symbol ff_h263_vdpau_hwaccel
allcodecs.obj : error LNK2001: unresolved external symbol ff_h263_videotoolbox_hwaccel
...

问题来自这个宏 https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/allcodecs.c#L34
#include "config.h"
#include "avcodec.h"
#include "version.h"

...

#define REGISTER_HWACCEL(X, x) \
{ \
extern AVHWAccel ff_##x##_hwaccel; \
if (CONFIG_##X##_HWACCEL) \
av_register_hwaccel(&ff_##x##_hwaccel); \
}

...

void avcodec_register_all(void)
{
static int initialized;

if (initialized)
return;
initialized = 1;

/* hardware accelerators */
REGISTER_HWACCEL(H263_VAAPI, h263_vaapi);
REGISTER_HWACCEL(H263_VIDEOTOOLBOX, h263_videotoolbox);
...

我不明白为什么当我的配置将它们设置为 0 时这些方法甚至会被声明
#define CONFIG_H263_VAAPI_HWACCEL 0
#define CONFIG_H263_VDPAU_HWACCEL 0
#define CONFIG_H263_VIDEOTOOLBOX_HWACCEL 0
...

顺便说一句,当我使用 msys/make 工具时,它可以构建。

最佳答案

您可能正在尝试将 C 代码与 C++ 名称修饰链接。
尝试:

extern "C"
{
#include <avcodec.h>
#include <avformat.h>
}

关于visual-studio - 将 ffmpeg/avcodec 与 Visual Studio 2015 链接时无法解析的外部符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34050205/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com