Android.mk
是一个用于构建Android项目的Makefile,它定义了编译、链接和打包等任务,以及源文件、依赖关系和编译选项等。
Android已经支持cmake进行ndk开发,而在一些比较老的项目还在用mk进行ndk的编译,所以还是有必要熟悉下mk的写法。
Module xxxxx depends on undefined modules: leaktracer
缺少导入leaktracer的模块
$(call import-module, dir) # dir为模块的mk文件的目录
No rule to make target
make: *** No rule to make target '/src/MemoryTrace.cpp', needed by 'G:\proj\learn-jni\app\build\intermediates\cxx\Debug\5a1z3j31/obj/local/arm64-v8a/objs-debug/leaktracer//src/MemoryTrace.o'. Stop.
LOCAL_SRC_FILES
文件目录出现了问题:
LOCAL_SRC_FILES := \ src/MemoryTrace.cpp \ # 错误写法 /src/MemoryTrace.cpp,前边不应该加/ src/AllocationHandlers.cpp
hpp file not found
fatal error: 'MemoryTrace.hpp' file not found #include "MemoryTrace.hpp"
没有添加头文件目录:
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
android mk文件的静态库生成到哪里了
app\build\intermediates\cxx\Debug\5a1z3j31\obj\local\arm64-v8a
添加宏
LOCAL_CPPFLAGS += -DDEBUG_MODE