Ich möchte, dass mein Code mit dem Intel-Compiler oder mit gcc/g ++ abhängig von einem configure-Argument kompiliert wird. Ist das möglich? Was muss ich in meine Dateien configure.ac und Makefile.am eingeben, um dies zu ermöglichen?Wie bekomme ich Autotools mit dem Intel-Compiler kompilieren?
Antwort
Wenn Sie beim Kompilieren einen anderen Compiler als gcc verwenden möchten, übergeben Sie 'CC =/path/to/compiler' als zu konfigurierendes Argument. (Das heißt, laufen configure CC =/path. Verwenden Sie nicht die CC-Form =/path configure.) Wenn Sie die Standard-Compiler wollen etwas anderes als gcc sein, können Sie setzen
CC=${CC-/path/to/default/compiler}
in configure.ac vor dem Aufruf von AC _ PROG _ CC.
Natürlich ist es. Sie können einen Standardcompiler in configure.ac konfigurieren, und wenn der Benutzer einen anderen Compiler verwenden möchte, kann er (oder sie) ihn an das Skript ./configure
übergeben.
Hier finden Sie weitere Informationen: How to use autotools.
Der Teil, könnte für Sie interessant sein, 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
Können Sie nicht tun dies nur als Nun: – freedrull
Normalerweise kann man nur laufen
bash $ CC=icc ./configure
zu verwenden lcc oder andere Compiler als C Compiler, sofern der Rest des Konfigurations- und Build-Prozesses keinen gcc'ism verwendet.
Es ist besser zu verwenden: $ ./configure CC = Icc. Wenn Sie CC als Argument zum Konfigurieren übergeben, funktioniert die Neukonfiguration mit dem Konfigurationsstatus. Wenn Sie CC in der Umgebung festlegen, wird dies nicht der Fall sein. –
Ich würde dies tun:
AC_PROG_CC([icc gcc])
Dies ist für die Compiler in der Reihenfolge aussehen wird angegeben, es sei denn mit einem Argument außer Kraft gesetzt ./configure
$ ./confgure CC=gcc
Dies ist kein guter Ansatz. Verwenden Sie stattdessen AC_PROG_CC, wie von freedrull empfohlen. –