Qt:在 android 链接到 FFmpeg 时未定义对 atof、log2 和 log2f 的引用

Qt: Undefined reference to atof, log2 & log2f on android linking to FFmpeg

正在尝试构建我的 Qt 应用程序 android linking 到 FFmpeg

我在 android 上收到以下 linker 错误。

libavformat/hls.c:783: error: undefined reference to 'atof'
libavcodec/ffv1enc.c:476: error: undefined reference to 'log2'
libavcodec/imc.c:472: error: undefined reference to 'log2f'

以下是我尝试 link 用于 FFmpeg 的库列表。

-lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice -lpostproc -lm -lgnustl_static

linker 选项中我缺少什么?

我还将以下设置为:

CONFIG += c++14
QMAKE_CXXFLAGS_RELEASE += -std=c++1y
QMAKE_CXXFLAGS_DEBUG += -std=c++1y

这与 Qt 严格无关,只是因为这些函数未在 Android 中定义,如 Does Android support log2 and Android ndk can't find atof function 中所述,以及其他地方。

您要么必须在包含 FFmpeg 之前定义这些函数 headers,要么找到一个可以为您执行此操作的库。