在Mac上用NDK编译libfdk-aac, 遇到了一些问题,在新版本的NDK下会报一些错,于是换回了r10e,编译就通过了,但是又碰到了一个新的问题
集成到工程里时,报了这个错:no archive symbol table (run ran lib)
在编译.a库时发现报了这个warning:ranlib: warning for library libfdk-aac.a the table of contents is
empty (no object file members in the library define global symbols)
原因是自检时没有检测到NDK下的ranlib,编译时优先用了XCode下的ranlib,但这个可能跟NDK不太兼容,所以出了问题。
解决方案是,手动调用$NDK_HOME/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-runlib,对生成的.a进行接口的导出。
./arm-linux-androideabi-runlib libfdk-aac.a
另外有可能导致这个问题的原因可能
.a是armv7或者其他不同平台下编译的,但现在NDK不支持armv7,
解决方法是找到源文件重新编译出.a文件 即可