3

我有一个 Makefile 假设可以在多个主机上编译我的应用程序,其中一些内置了 intel 编译器(icpc),而另一些只有 g++。我希望 makefile 自动检测 icpc 的可用性,如果可用,则使用英特尔编译器编译应用程序,否则只需使用 g++ 编译它。

如何更改 Makefile 以自动检测 icpc 编译器的可用性?

这是我的尝试,根本没有用

ERR = $(shell icpc 2>/dev/null ; echo $? )
ifeq "$(ERR)" "127"
    CXX = g++
else
    CXX = icpc
endif
4

1 回答 1

1

您可以改为which用于检测。icpc也更好地检查0而不是127,因为从一个系统到另一个系统可能存在差异

ERR = $(shell which icpc >/dev/null; echo $$?)
ifeq "$(ERR)" "0"
    CXX = icpc
else
    CXX = g++
endif

all:
    echo $(CXX)
于 2013-01-06T15:27:11.313 回答