古人学问无遗力,少壮工夫老始成。这篇文章主要讲述Android FFmpeg:对atof,log2和log2f的未定义引用相关的知识,希望能为你提供帮助。
我正在尝试使用android-ndk-r15c链接到为android构建的FFmpeg。我通过下载最新的ffmpeg-3.3.4的FFmpeg source来构建它。
以下是我的链接器列表:
-lavformat -lavcodec -lswscale -lavutil -lavfilter -lswresample -lavdevice -lpostproc
我抱怨以下错误
libavformat/hls.c:783: error: undefined reference to 'atof'
libavcodec/ffv1enc.c:146: error: undefined reference to 'log2'
libavcodec/imc.c:428: error: undefined reference to 'log2f'
以下是我的FFmpeg相关内容包括:
#include <
stdint.h>
#include <
cstdlib>
#define __STDC_CONSTANT_MACROSextern "C" {#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libavutil/mathematics.h"
#include "libavcodec/version.h"
#include "libavutil/rational.h"
#include "libavutil/avstring.h"
#include "libswscale/swscale.h"}
以下是我用于交叉编译FFmpeg for android的buildscript:
#!/bin/bashcd ffmpeg-3.3.4NDK=/path/to/ndk/android-ndk-r15c
SYSROOT=$NDK/platforms/android-21/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
AR=$TOOLCHAIN/bin/arm-linux-androideabi-ar
CPREFIX=$TOOLCHAIN/bin/arm-linux-androideabi-ar
CC=$TOOLCHAIN/bin/arm-linux-androideabi-gcc
CXX=$TOOLCHAIN/bin/arm-linux-androideabi-g++
LD=$TOOLCHAIN/bin/arm-linux-androideabi-ld
RANLIB=$TOOLCHAIN/bin/arm-linux-androideabi-ranlib
STRIP=$TOOLCHAIN/bin/arm-linux-androideabi-stripfunction build_ffmpeg_android {./configure
--prefix=$PREFIX
--disable-stripping
--arch=arm
--cpu=cortex-a8
--target-os=linux
--enable-cross-compile
--enable-debug
--enable-pic
--disable-programs
--enable-static
--disable-shared
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi-
--disable-doc
--enable-postproc
--enable-swscale
--enable-avfilter
--enable-avresample
--disable-opencl
--disable-securetransport
--sysroot=$SYSROOT
--enable-videotoolbox
--enable-avresample
--disable-symver
#--enable-gpl
#--enable-libx264
$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j9
make install
}CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"build_ffmpeg_android
题: 我错过了哪个图书馆链接?
答案【Android FFmpeg(对atof,log2和log2f的未定义引用)】我遇到了这个问题,使用
ffmpeg-2.8.15
和平台x264
与ndk-r10e
建立android-15
。我更新了代码以使用android-21
并且它编译代码没有任何问题。我们的min sdk版本是21
。推荐阅读
- 垃圾收集器没有像在Android应用程序中那样释放“捶打内存”
- 将RTSP流保存到android中的mp4文件
- 如何在java中使用ffmpeg-cli-wrapper使用ffmpeg下载m3u8文件()
- 自动将输出文件与输入文件匹配(Applescript x FFMPEG)
- 如何在Android中使用FFMPEG库将Youtube视频与MP4合并()
- QGuiApplication没有显示使用QPainter和QPdfWriter
- Android应用自定义字体在手机上完全被忽略
- 如何在Android Studio上添加字体文件夹()
- Android支持哪些字体文件类型()