10 Stimmen

Wie bringe ich Autotools dazu, mit dem Intel-Compiler zu kompilieren?

Ich möchte, dass mein Code mit dem/den Intel-Compiler(n) oder mit gcc/g++ kompiliert wird, abhängig von einem configure-Argument. Ist dies möglich? Was muss ich in meine Dateien configure.ac und Makefile.am einfügen, damit dies möglich ist?

16voto

freedrull Punkte 2124

Ich würde dies tun:

AC_PROG_CC([icc gcc])

Es wird in der angegebenen Reihenfolge nach den Compilern gesucht, es sei denn, dies wird mit einem Argument für ./configure überschrieben

$ ./confgure CC=gcc

11voto

William Pursell Punkte 188248

Wenn Sie beim Kompilieren einen anderen Compiler als gcc verwenden wollen, übergeben Sie 'CC=/path/to/compiler' als Argument an configure. (Das heißt, führen Sie ./configure CC=/path aus. Verwenden Sie nicht die Form CC=/path ./configure.) Wenn Sie einen anderen als den gcc als Standard-Compiler verwenden wollen, können Sie

CC=${CC-/path/to/default/compiler}

in configure.ac vor dem Aufruf von AC_PROG_CC.

1 Stimmen

Dies ist kein guter Ansatz. Verwenden Sie stattdessen AC_PROG_CC, wie von freedrull empfohlen.

4voto

Natürlich ist sie das. Sie können einen Standard-Compiler in configure.ac konfigurieren, und wenn der Benutzer einen anderen Compiler verwenden möchte, kann er (oder sie) ihn an die ./configure Drehbuch.

Mehr dazu finden Sie hier: Verwendung von Autotools .

Der Teil, der für Sie interessant sein könnte, befindet sich in der Mitte der Seite:

#if a compiler is not specified by the user use intel compilers
AC_PATH_PROG(CC_PATH, $CC, NO_PATH)
if test "$CC_PATH" = NO_PATH; then
 CC="icc"
fi

0 Stimmen

Können Sie das nicht auch tun?

0 Stimmen

Unter autoconf 2,69, was Sie vorgeschlagen haben, führt zu The usual way to define 'CC' is to add 'AC_PROG_CC' für mich.

2voto

nos Punkte 214143

Normalerweise können Sie einfach

bash $ CC=icc ./configure

lcc oder einen anderen Compiler als C-Compiler zu verwenden, vorausgesetzt, der Rest des configure- und Build-Prozesses verwendet keinen gcc'ism.

1 Stimmen

Es ist besser zu verwenden: $ ./configure CC=icc. Wenn Sie CC als Argument an configure übergeben, wird die Neukonfiguration mit config-status funktionieren. Wenn Sie CC in der Umgebung festlegen, wird dies nicht funktionieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X