4
回答
在ubuntu 13.04 64位下,应该下载android ndk r10的那个版本?
在官网上下载了最新的ndk r10版本,有以下版本。
我下载了Linux 64-bit (x86) android-ndk32-r10-linux-x86_64.tar.bz2  这个版本,编译ffmpeg出现了
在make的时候出现了以下错误。

====

libavutil/libavutil.so.52
/home/rick/software/android-ndk-r10/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.8/../../../../arm-linux-androideabi/bin/ld: error: libavutil/display.o: incompatible target  

====

是我下载的版本错了吗?


举报
独树一枝
发帖于3年前 4回/11K+阅
共有4个答案 最后回答: 3年前

64位应该下ndk64的那个

看你准备编译的代码是针对32位设备的还是64位设备的

如果你makefile有类似这样的脚本,

ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
        LOCAL_ARM_NEON  := true       
endif # TARGET_ARCH_ABI == armeabi-v7a


ifeq ($(TARGET_ARCH_ABI),arm64-v8a)
        LOCAL_ARM_NEON  := true
endif # TARGET_ARCH_ABI == arm64-v8a

就是要针对armeabi-v7a(32位ARM设备),arm64-v8a(64位ARM设备)生成2进制代码的话ndk32和ndk64都要下,其中ndk32里面木有gcc 4.9而且无法编译arm64-v8a的指令

google分那么多个目标目的只是让你按自己需要下载少点而已。

--- 共有 1 条评论 ---
独树一枝的确是64位的问题。谢谢了。 3年前 回复

android ndk自r10后,便推出了三个版本,32位target版,64位target版,stl debug target版,这三个版本各自独立,一般的开发主要还是选择32位的target版本,当然也可以把这三个版本合并在一起使用,当app_abi := all时会发现发现生成的库有7个版本;

我是ndk吧的吧主,更多的ndk的问题,欢迎大家到ndk吧来反馈,谢谢!

引用来自“fukeainideren”的评论

android ndk自r10后,便推出了三个版本,32位target版,64位target版,stl debug target版,这三个版本各自独立,一般的开发主要还是选择32位的target版本,当然也可以把这三个版本合并在一起使用,当app_abi := all时会发现发现生成的库有7个版本;

我是ndk吧的吧主,更多的ndk的问题,欢迎大家到ndk吧来反馈,谢谢!

我下载的r10c,


编译时,把 app api设为 arm64-v8a


编译失败,unknown ABI(s):arm64-v8a


这是什么情况啊
顶部