我目前正在两台不同的机器上开发。在一个gcc
映射到 gcc 4.6 并且有一个gcc3
适合需要真正旧版本 gcc 的人。在另一台机器gcc
上映射到 v3 gcc,并且有一个gcc4
用于调用较新编译器的命令。
问题应该很明显 - 我想要两台机器都有一个 makefile,这基本上意味着CC
根据是否gcc4
可以找到来定义。
我目前正在两台不同的机器上开发。在一个gcc
映射到 gcc 4.6 并且有一个gcc3
适合需要真正旧版本 gcc 的人。在另一台机器gcc
上映射到 v3 gcc,并且有一个gcc4
用于调用较新编译器的命令。
问题应该很明显 - 我想要两台机器都有一个 makefile,这基本上意味着CC
根据是否gcc4
可以找到来定义。
作为一个快速破解,你可以在你的makefile中添加一个简单的基于shell的检查gcc4 bin。例如:
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)。