C语言 makefile可以通过标记使用不同的编译器并找到可变的gcc路径的任何可能性?



是否有可能makefile可以通过标志使用不同的编译器并找到可变的gcc路径?系统为Linux

所以目标应该是类似于在命令行中说"make CC=…"它应该使用两个可能的编译器中的一个,并且应该以一种"自动"的方式找到第二个编译器的路径(第一个编译器是标准的gcc)。这可能吗?

例如:

第一个编译器:

CC := gcc

第二个编译器第一个路径:

CC := /path-to-compiler-1/gcc

第二个编译器第二个路径:

CC := /path-to-compiler-2/gcc

不幸的是,我不知道如何以一种优雅的方式实现这一点。

编辑:关于这两种不同的编译器的背景是,第一个是标准的linux gcc,第二个是针对mips优化的gcc。所以我只想用两种方式编译,在嵌入式站点上为mips编译,必要时在普通linux站点上进行标准编译。或者另一种可能是同时编译两个可执行文件。mips编译器列在一个以/home/user开头的路径下。因此,文件夹用户是可变的,可能存在另一个上级文件夹。关于这一点,makefile应该为mips找到正确的路径。

你是这个意思吗?

CC = $(if $(COMPILER),$(COMPILER),gcc)
CFLAGS = -std=c11 -pedantic -Wall
all:
$(CC) $(CFLAGS) -o demo demo.c
clean:
rm -f demo

您可以使用:

启动Makefile
make COMPILER=gcc

make COMPILER=clang

如果你没有提供任何参数

make

默认为gcc

最新更新