android - Qt:链接到 FFmpeg 的 android 上对 atof、log2 和 log2f 的 undefined reference

标签 android c++ qt ffmpeg math.h

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

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

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 中定义,如 Does Android support log2 中所述。和 Android ndk can't find atof function , 在其他地方。

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

关于android - Qt:链接到 FFmpeg 的 android 上对 atof、log2 和 log2f 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46651711/

相关文章:

android - 行与行之间有空格的 TextView 背景

java - 从 Android 浏览器获取网站标题?

java - Android 应用程序在平板手机上崩溃,但在手机上运行良好

c++ - STL 是否首先设置相等运算符检查大小?

c++ - 获取 Qt 对象的大小

c++ - 防止 QGraphicsItem::itemAt() 在 "Background Item"

android - ViewModel实例化导致死循环

c++ - 链表迭代器实现 C++

c++ - 在使用 QtCreator 和 Visual Studio 构建的应用程序之间使用 Qt STL

c++ - QPushButton 在 MainWindow 中不可点击