如何设置 GNU make 在 macos 上使用 gcc 默认值?

luc*_*ang 2 macos gcc gnu-make

objects = main.o kbd.o command.o display.o \
        insert.o search.o files.o utils.o

edit : $(objects)
        cc -o edit $(objects)

main.o : defs.h
kbd.o : defs.h command.h
command.o : defs.h command.h
display.o : defs.h buffer.h
insert.o : defs.h buffer.h
search.o : defs.h buffer.h
files.o : defs.h buffer.h command.h
utils.o : defs.h

.PHONY : clean
clean :
        rm edit $(objects)
Run Code Online (Sandbox Code Playgroud)

这是来自 GNU make 的示例 makefile。它说 make 将使用简单的规则生成具有匹配名称的 *.c 文件的 *.o 文件。

但是,在我的 mac 上,默认使用 clang,我希望它默认使用 gcc-7,以防某些项目在使用 clang 编译时出错。

Mar*_*ell 6

首先,您需要安装gcc. 我会通过安装Homebrew来做到这一点,然后运行:

 brew install gcc
Run Code Online (Sandbox Code Playgroud)

那应该给你/usr/local/bin/gcc-7或类似的。您可以通过以下方式检查:

ls /usr/local/bin/gcc*
Run Code Online (Sandbox Code Playgroud)

那么你应该能够做到:

make CC=/usr/local/bin/gcc-7
Run Code Online (Sandbox Code Playgroud)

如果您总是想要该编译器,请编辑您的登录配置文件并添加一行:

export CC=/usr/local/bin/gcc-7
Run Code Online (Sandbox Code Playgroud)

并注销并重新登录以使其生效。