06
2018
12

Mac 上用NDK编译lib库的问题 no archive symbol table (run ran lib)

在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文件 即可


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。