C Makefiles,多个编译器

时间:2018-01-04 15:12:55

标签: c makefile compilation

我是编码的新手,所以请耐心等待。我搜索过,但无法找到解决问题的方法。我在C工作,我有多个文件,我必须使用c11编译器编译和一个我需要使用GNU gcc的文件。有没有办法创建一个可以使用两个编译器执行此操作的makefile,还是有一种我不知道的高级方法? 提前致谢

1 个答案:

答案 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