9

我希望我的代码可以使用 Intel 编译器或 gcc/g++ 编译,具体取决于配置参数。这可能吗?我需要在 configure.ac 和 Makefile.am 文件中添加什么来实现这一点?

4

4 回答 4

15

我会这样做:

AC_PROG_CC([icc gcc])

这将按指定的顺序查找编译器,除非被 ./configure 的参数覆盖

$ ./confgure CC=gcc
于 2011-02-24T05:47:59.227 回答
11

如果您想在编译时使用 gcc 以外的编译器,请将 'CC=/path/to/compiler' 作为参数传递给配置。(也就是说,运行 ./configure CC=/path。不要使用 CC=/path ./configure 的形式。)如果您希望默认编译器不是 gcc,您可以输入

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

在调用 AC_PROG_CC 之前的 configure.ac 中。

于 2009-08-15T12:18:21.800 回答
4

当然是的。您可以在 configure.ac 中配置默认​​编译器,如果用户想要使用另一个编译器,他(或她)可以将其传递给./configure脚本。

您可以在这里找到更多相关信息:如何使用 autotools

您可能感兴趣的部分位于页面中间:

#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
于 2009-08-14T23:15:45.777 回答
2

通常你可以运行

bash $ CC=icc ./configure

使用 lcc 或任何其他编译器作为 C 编译器,前提是其余的配置和构建过程不使用任何 gcc'ism。

于 2009-08-15T00:19:19.617 回答