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

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

本文关键字:android 链接 FFmpeg 引用 未定义 atof Qt log2 log2f      更新时间:2023-10-16

尝试为链接到FFmpeg的Android构建我的Qt应用程序

我在安卓上收到以下链接器错误。

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'

以下是我尝试为 FFmpeg 链接的库列表。

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

链接器选项中缺少什么?

我还将以下内容设置为:

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

这严格来说与Qt无关,只是因为这些函数没有在Android中定义,如Android是否支持log2和Android ndk找不到atof函数等地所述。

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