[√]android makefile

简介: [√]android makefile

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 
目录
相关文章
|
3月前
Android.mk(makefile)中几个符号的区别:=、 :=、 ?=、 +=
本文解释了在Android.mk文件中使用的几种赋值符号的区别,包括`=`(基本赋值)、`:=`(覆盖赋值)、`?=`(条件赋值,仅在变量未赋值时操作)、`+=`(追加赋值),并通过实验演示了这些符号的具体行为和效果。
189 1
|
6月前
|
Android开发
Android Makefile中inherit-product函数和include的区别
Android Makefile中inherit-product函数和include的区别
125 0
|
Shell 编译器 C语言
【Android构建篇】MakeFile语法< 1 >
对于一个看不懂Makefile构建文件规则的人来说,这个Makefile语法和shell语法是真不一样,但是又引用了部分shell语法,可以说是shell语法的子类,Makefile语法继承了它。 和shell语法不一样,这个更难一点,而且不太容易懂,所以后续还会持续更新这篇文章。
161 0
【Android构建篇】MakeFile语法< 1 >
|
Android开发
【Android构建篇】MakeFile语法中 := 和 = 的区别
使用:= 在Makefile中使用 := 赋值方式定义变量时,如果该变量定义中包含了其他变量的引用,那么这些引用所表示的值将在变量定义时即被展开。也就是说,子变量会被立即展开,并赋值给父变量。
131 0
|
Shell C语言 Android开发
【Android构建篇】MakeFile语法< 3 >
对于一个看不懂Makefile构建文件规则的人来说,这个Makefile语法和shell语法是真不一样,但是又引用了部分shell语法,可以说是shell语法的子类,Makefile语法继承了它。 和shell语法不一样,这个更难一点,而且不太容易懂,所以后续还会持续更新这篇文章。
116 0
|
存储 Shell 编译器
【Android构建篇】MakeFile语法< 2 >
对于一个看不懂Makefile构建文件规则的人来说,这个Makefile语法和shell语法是真不一样,但是又引用了部分shell语法,可以说是shell语法的子类,Makefile语法继承了它。 和shell语法不一样,这个更难一点,而且不太容易懂,所以后续还会持续更新这篇文章。
154 0
|
Unix 编译器 Linux
【Android篇】MakeFile初识
C语言中,我们使用visual studio开发软件时候,写程序开始时候都会创建一个project项目文件,然后在文件里面编译 .h 和 .c 的文件。 在Linux中,有一个叫做make的指令,就相当于C语言的IDE,我们只需要敲make指令,make会去查看当前的Makefile或makefile(小写编译优先级更高)文件。 不过我们创建的项目不叫project,而是称为Makefile,打开一个make源程序包,发现很多Makefile的文件,说明里面有很多的项目,并且Makefile管理着这些依赖关系。
102 0
|
Android开发
【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )(二)
【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )(二)
176 0
【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )(二)
|
编译器 Android开发 C++
【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )(一)
【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )(一)
155 0
【Android 逆向】Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Makefile 构建 Android 平台 NDK 应用 )(一)
|
Java 编译器 Linux
【CMake】CMake 引入 ( Android Studio 创建 Native C++ 工程 | C/C++ 源码编译过程 | Makefile 工具 | CMake 引入 )(二)
【CMake】CMake 引入 ( Android Studio 创建 Native C++ 工程 | C/C++ 源码编译过程 | Makefile 工具 | CMake 引入 )(二)
314 0
【CMake】CMake 引入 ( Android Studio 创建 Native C++ 工程 | C/C++ 源码编译过程 | Makefile 工具 | CMake 引入 )(二)
下一篇
无影云桌面