根据配置调用不同的编译器

时间:2013-01-29 09:04:54

标签: makefile

我正在开发两台不同的机器。在一个gcc映射到gcc 4.6,并且有一个gcc3用于任何需要非常旧版本的gcc的人。在另一台机器上gcc映射到v3 gcc,并且有一个gcc4命令用于调用较新的编译器。

问题应该是显而易见的 - 我想为两台机器提供一个makefile,这基本上意味着根据是否可以找到CC来定义gcc4

1 个答案:

答案 0 :(得分:1)

作为一个快速黑客,您可以在makefile中为gcc4 bin添加一个简单的基于shell的检查。例如:

CC := $(shell gcc4 -dumpversion >/dev/null 2>&1; if [ "$$?" -eq 0 ]; then echo "gcc4"; else echo "gcc"; fi)
<...>
$(CC) -c myprogram.c -o myprogram.o
<...>

但是,对于更成熟的项目,我建议考虑为此类任务设计的工具(autoconf)。