返回

Android NDK makefile 详细语法讲解,助你打造出色的 Android 应用

Android

Android NDK - makefile语法详解

前言

Android NDK 是一款强大的工具,可以帮助你使用 C/C++ 语言编写 Android 原生代码。在 NDK 项目中,makefile 是一个非常重要的文件,它控制着整个编译和链接过程。学习并理解 makefile 语法是 NDK 开发的必备技能。

makefile 语法简介

makefile 语法主要由以下几部分组成:

  • 变量:用于存储一些值,可以在 makefile 中的任何地方使用。
  • 规则:定义如何将一个或多个源文件编译成目标文件。
  • 命令:在规则中执行的具体操作。

变量

makefile 中的变量以美元符号 ($) 开头,后面紧跟变量名。变量值可以是字符串、数字或其他变量。例如:

# 定义变量 APP_NAME
APP_NAME = HelloNDK

# 定义变量 APP_SRC_DIR
APP_SRC_DIR = src

规则

makefile 中的规则由以下几部分组成:

  • 目标:规则要生成的文件。
  • 依赖:规则要使用的源文件或其他文件。
  • 命令:在规则中执行的具体操作。

规则的格式如下:

target: dependency
    command

例如:

# 规则:编译源文件 main.c 成目标文件 main.o
main.o: main.c
    gcc -c main.c -o main.o

命令

makefile 中的命令可以是任何 shell 命令,例如:

  • 编译命令:gcc -c main.c -o main.o
  • 链接命令:gcc main.o -o hello

命令可以在多行上书写,每行以制表符 (TAB) 开头。例如:

# 规则:编译源文件 main.c 成目标文件 main.o
main.o: main.c
    gcc -c main.c \
        -o main.o

makefile 实例

下面是一个完整的 makefile 实例:

# 定义变量 APP_NAME
APP_NAME = HelloNDK

# 定义变量 APP_SRC_DIR
APP_SRC_DIR = src

# 规则:编译源文件 main.c 成目标文件 main.o
main.o: main.c
    gcc -c main.c -o main.o

# 规则:链接目标文件 main.o 成可执行文件 hello
hello: main.o
    gcc main.o -o hello

# 默认规则:运行可执行文件 hello
.DEFAULT: hello

总结

makefile 语法是 Android NDK 开发的必备技能。通过学习和理解 makefile 语法,你可以轻松打造出色的 Android 应用。