赞
踩
在安卓9.0上写了库,其中引用到系统system/lib 和vendor/lib中的库。编译时发现出现错误
error: libtest (native:platform) should not link to libmi3 (native:vendor)
提示libmi3库无法链接,因为我写的库是编译到system/lib .但是libmi3库是在vendor/lib之下
而9.0 修改直接vendor/lib 和systen/lib之间无法互相读取造成,
查阅网上资料有的说修改
- build/make/core/link_type.mk
-
- my_allowed_types :=native:vendor
-
- my_link_type :=native:vendor
试了一些不知道是方法不对还是怎么的好像没用。还有说修改
- system/core/rootdir/etc/ld.config.txt
-
- namespace.default.search.paths += /system/${LIB}
看这挺像的,但是也还是不行,后面直接修改报错那个库文件编译出来的link_type
- \out\target\product\test\obj\SHARED_LIBRARIES\libmi3_intermediates\link_type
-
- 修改文件中的native:vendor
- 改为我们所需要的native:platform
这样我的SO库就可以正常编译成功,但是如果需要在机器上运行,需要将vendor/lib下对应的库文件拷贝到system/lib下,并且给予权限
但是这样改有个问题就是系统编译的时候有其他vendor库链接的这个库文件的时候会报同样的错,所以编完了需要改回去,这种方法只能供
暂时编译我们自己需要的SO库使用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。