我是编码的新手,所以请耐心等待。我搜索过,但无法找到解决问题的方法。我在C工作,我有多个文件,我必须使用c11编译器编译和一个我需要使用GNU gcc的文件。有没有办法创建一个可以使用两个编译器执行此操作的makefile,还是有一种我不知道的高级方法? 提前致谢
答案 0 :(得分:4)
CC
make变量告诉make使用什么C编译器。使用GNU make,可以全局定义或基于每个目标定义。以下应该做你想要的(假设foo.c
是你要用gcc
编译的源文件):
CC := c11
foo.o: CC=gcc
演示(使用clang
代替c11
,因为我没有此代码):
$ ls
bar.c baz.c foo.c Makefile
$ cat Makefile
all: $(patsubst %.c,%.o,$(wildcard *.c))
CC := clang
foo.o: CC=gcc
$ make
gcc -c -o foo.o foo.c
clang -c -o bar.o bar.c
clang -c -o baz.o baz.c