[√]android makefile

424 阅读1分钟

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