我的NDK项目的Android.mk包含几百个CPP文件,我从中构建了大约十几个静态库,最后是一个共享库。到目前为止,我的大多数开发经验都是在Windows上,因此我对Linux,GNU Make等不是很熟悉。
当我向Android.mk添加新的CPP文件(即LOCAL_SRC_FILES)时,发出ndk-build会重建我的所有文件,显然是因为Android.mk已更改,并且它引用了所有CPP文件。有办法避免这种情况吗?假设我为每个静态库创建一个单独的文件,每个这样的文件都会将lib的CPP文件添加到LOCAL_SRC_FILES并由Android.mk包含。这是否应该仅重建包含其文件的lib?这实际上是我的第一次尝试,但我在某处严重错误,并且不得不重新开始,因为构建将不再成功(这就是我再次尝试之前要问的原因)。
假设上述方法合理,包含文件如何与包含/包含文件中设置的变量的范围/生命周期相关?
仍然希望有人能回答这个......
答案 0 :(得分:1)
首先尝试将项目拆分为多个android.mk文件,而不是只有一个。每次更改其中一个时,它都会限制重新编译步骤。
然后试试这个ndk-build -o <your_android.mk>
。例如:
ndk-build -o jni/Android.mk
参考:How to prevent Android native project full rebuild after changing Android.mk?