如何在 Ubuntu 上有条件地为 ARM 交叉编译?

How to cross compile for ARM on Ubuntu conditionally?

我写了下面的make文件

all: writer.o

writer.o:
    gcc -Wall writer.c -o writer

clean:
    rm *.o

如何向此 make 文件添加功能,以便在 make 命令 line.However 上未指定 GNU make 变量 CROSS_COMPILE 时,我能够为本机构建平台生成应用程序, 当设置 CROSS_COMPILe 时,我应该使用编译器 aarch64-none-linux-gnu-gcc.

生成一个交叉编译的输出文件

CROSS_COMPILE 变量本身设置为编译器前缀。所以对于原生构建:

CROSS_COMPILE = 

(即什么都没有,变量为“空”)。

对于cross-compilation:

CROSS_COMPILE = aarch64-none-linux-gnu-

然后设置:

CC = $(CROSS_COMPILE)gcc

为了补充上述内容,使用隐式规则构建程序:

all: writer

writer: writer.o

这就是您所需要的。