当一个Android.mk文件被编写好之后,为什么执行了make 没有生成对应的.so文件或者可执行文件?
首先当在执行make libExample -j16的时候,会这个module进行编译,并生成可执行文件或者共享库
但是在执行完全编译的时候并不会把这个模块加进去参加整体编译,这其中有版本选择的关系,在Android.mk中有这么一句话
LOCAL_MODULE_TAGS := optional
这是说当前模块在所有的版本下都执行编译,其外还有三个编译版本的选择分别是eng(debug版本),user(release版本),test(userdebug版本,除了user版本的特性外还会安装标识为eng的模块,默认启用adbd)
还有当这个选对之后,其实还有一个原因导致问题,就是在设备编译的时候并没有引用进去。需要在devices下将这个module添加进去,让它参与到这个版本的编译中。
文件位置:/device/lge/bullhead/device.mk
在其中添加下面语句:
PRODUCT_PACKAGES += \
libExample
下面的就是自己的模块名,这样就可以参与到编译了。