c++ - lld-link错误编译 Chrome 与ffmpeg附加调用

标签 c++ ffmpeg electron llvm chromium

在从 ffmpeg_decoding_loop 添加一些对 ffmpeg 的调用之后,在 Windows 上编译时出现错误(直接在 Windows 上和从 linux 交叉编译时)。
我不明白的是它在 linux/macos 上没有问题。
我多次调用 ffmpeg 代码,但让我们将其归结为一个有代表性的示例。
我称之为:

const AVFilter *buffer_src = avfilter_get_by_name("buffer");
在 linux/macos 上:没问题。
在 window 上:
lld-link: error: undefined symbol: avfilter_get_by_name
>>> referenced by .\..\..\media\ffmpeg\ffmpeg_decoding_loop.cc:111
>>>               obj/media/ffmpeg/ffmpeg/ffmpeg_decoding_loop.obj:(public: void __cdecl media::FFmpegDecodingLoop::InitFilterGraph(struct AVFrame *))
>>> referenced by .\..\..\media\ffmpeg\ffmpeg_decoding_loop.cc:112
>>>               obj/media/ffmpeg/ffmpeg/ffmpeg_decoding_loop.obj:(public: void __cdecl media::FFmpegDecodingLoop::InitFilterGraph(struct AVFrame *))

是否需要在 windows 上进行一些额外的配置?
我使用 Visual Studio 2019、Windows 10.0.19041.0 sdk、llvm 10.0.0。

最佳答案

对于那些可能会偶然发现的人:如果您在您的 chromium 代码中使用来自第三方/ffmpeg 的函数,请确保在 third_party/ffmpeg/chromium/ffmpeg.sigs 中指定了这些函数。 .
它仅在为 windows 编译时使用(这就是为什么我的 mac/linux 构建成功的原因)。

关于c++ - lld-link错误编译 Chrome 与ffmpeg附加调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64893059/

相关文章:

c++ - fftw3 的常量正确性

c++ - 运行编译程序 - "Invalid argument"

iphone - FFMPEG iPhone 使用气体预处理器

powershell - 如何在另一个 powershell 命令中使用输出文件?

android - 使用 ffmpeg 和 ffserver 通过 rtsp 将网络摄像头提要流式传输到 android 客户端

reactjs - 使用React在 Electron 应用程序中构建正确的loadURL吗?

electron - 如何使用 Hyper 编写 Electron 应用程序?

c++ - 将表面法 vector 投影到 xy 平面上

c++ - 具有显式构造函数的智能指针让我出错

electron - 如何创建不可调整大小的100%屏幕(非全屏)BrowserWindow