赞
踩
在mips平台上,运行程序链接ffmpeg的动态库时,程序随机的一些位置发生
Illegal instruction
错误,然后程序退出
[root]# cat /proc/cpuinfo | grep mips
isa : mips32r1
查看CPU信息,指令集为mips32r1,对应到ffmpeg的configure选项当中时,没有对应的cpu架构与之匹配,只有
ARCH_EXT_LIST_MIPS=" mipsfpu mips32r2 mips32r5 mips64r6 mipsdspr1 mipsdspr2 msa " 并且有24kc/24kf/24kec...等等cpu架构可以禁用某些优化选项,例如 --disable-mips32r5 disable MIPS32R5 optimizations --disable-mips64r6 disable MIPS64R6 optimizations --disable-mipsdspr1 disable MIPS DSP ASE R1 optimizations --disable-mipsdspr2 disable MIPS DSP ASE R2 optimizations --disable-mipsfpu disable floating point MIPS optimizations 那通过修改configure脚本,指定arch和cpu,同时disable一些优化选项,设置configure命令如下: ./configure \ --prefix=${INSTALL_DIR} \ --cross-prefix=${CROSS_PREFIX} \ --arch=mips \ --disable-mipsdsp \ --disable-mipsdspr2 \ --disable-mips32r2 \ --disable-mipsfpu \ --disable-mips64r2 \ --disable-mips32r6 \ --target-os=linux \ --enable-cross-compile \ --disable-everything \ --disable-programs \ --disable-avdevice \ --disable-filters \ --disable-runtime-cpudetect \ --disable-doc \ --disable-muxers \ --enable-muxer=mpegts \ --enable-muxer=mp4 \ --enable-muxer=wav \ --disable-demuxers \ --enable-demuxer=mov \ --disable-protocols \ --enable-protocol=file \ --disable-static \ --enable-shared \ --enable-avresample \ --enable-swscale \ --enable-encoder=aac \ --disable-zlib \ --disable-yasm \ --disable-swresample \ --disable-avfilter \ --disable-iconv \ --disable-debug
可以正常编译和运行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。