AC_PROG_CXX
宏检查可能的C ++编译器,如果发生故障,很高兴只需将CXX
设置为g ++,即使它知道g ++并不存在。
我的问题是,你怎么能理解AC_PROG_CXX
是否确实找到了合适的编译器?
我问,因为我的项目中有一个可以选择编译的C ++库。我似乎无法弄明白我是怎么知道我是否可以用CXX
编译任何东西。
某些像AC_PROG_CC_C99
这样的宏会给出一个变量(在这种情况下为ac_cv_prog_cc_c99
),可以告诉我该功能是否存在。我尝试了ac_cv_prog_cxx
和类似的事情,但它似乎并不存在。
答案 0 :(得分:3)
您可以尝试编译最小程序,例如,
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[[#ifndef __cplusplus
#error "broken C++"
#endif]])],,
[CXX=;])
AC_LANG_POP([C++])
如果编译失败,我们将CXX
显式设置为空字符串。所以取决于你想做什么:
if test "x$CXX" != x ; then
... we have a working C++ compiler - setup optional stuff ...
fi
或作为Makefile.am
文件中conditional版本的一部分:
AM_CONDITIONAL([ENABLE_CXX_SRC], [test "x$CXX" != x])