使用 MXE 交叉编译 FFmpeg + Qt 应用程序

Cross compiling FFmpeg + Qt application with MXE

我有一个非常简单的项目,它使用 Qt 以及我在 linux 下开发的 FFmpeg。
现在我无法使用 MXE 交叉编译所述项目以在 windows 机器上使用它。

在 linux 下,我所要做的就是添加

LIBS += -lavcodec -lavformat -lswscale -lavutil

到 Qt 的 .pro 文件并将 FFmpeg 的包含包装在 "extern "C"" 块中,它编译得很好。

现在,对于 MXE,我刚刚克隆了 git 存储库并使用了

make MXE_TARGETS='x86_64-w64-mingw32.static' qt5 ffmpeg

正如 MXE 文档所述,我设置了 PATH 变量并使用了

qmake && make

但是我收到很多关于 libavformat 的未定义引用错误。

谁能告诉我我做错了什么?我有点迷路了。

好的,我开始工作了。

gcc 的 mxe 版本要求您多次包含该库,如果它被库列表中的库引用到 link。

将 -lavformat 添加到 LIBS 行的末尾。