5.10.4 C++编译器特性

宏:AC_PROG_CXX公司 ([编译器搜索列表])

确定要使用的C++编译器。

如果环境变量CXX公司或环境变量CCC公司则其值将作为C++编译器。如果两者都设置好了,CXX公司首选。如果两者都不存在设置,在一系列可能的名称下搜索C++编译器,尝试克++c(c)++第一。无论如何,输出变量CXX公司设置为所选编译器。

如果使用宏的可选第一个参数,它必须是空白-C++编译器的潜在名称的分隔列表,它覆盖了内置列表。

如果找不到C++编译器,作为最后手段CXX公司设置为克++(随后的测试可能会失败)。

如果发现选定的C++编译器是GNU C++(无论其名称),shell变量通用xx将设置为'’.如果shell变量CXX标签尚未设置,已设置-g-氧气用于GNU C++编译器(-氧气在系统上其中G++不接受-克),或-克对于其他编译器。CXX标签然后成为输出变量。您可以覆盖的默认值CXX标签通过插入壳之间的默认分配空调初始化AC_PROG_CXX公司:

:${CXXFLAGS=“选项"}

哪里选项是合适的选项集违约。(重要的是使用此构造而不是正常分配,以便CXX标签仍然可以被构建包的人。请参阅预设输出变量.)

如有必要,将选项添加到CXX公司支持ISO标准C++具有扩展功能,首选最新版本支持的C++标准。当前最新版本Autoconf知道如何检测对isC++11的支持。通话后此宏,您可以检查C++编译器是否已设置为通过检查shell变量接受标准C++ac_prog_cxx_stdcxx.其值为“cxx11号'或'cxx98号'分别为,如果C++编译器已设置为使用2011或1990版的C++标准,以及'如果编译器不支持编译完全是标准C++。

标准一致性测试并不全面。他们测试的价值__cplusplus公司和具有代表性的C++标准的每个版本中都添加了语言功能。他们不要测试C++标准库,因为这可能非常困难速度慢,因为C++编译器可能正在为“独立环境”(其中大多数C++标准库可选)。如果您需要知道特定的C++标准标头存在,请使用AC_检查_头.

没有可以添加到的选项CXX公司通过此宏使可能严格的符合C++标准。特别地,未禁用系统特定的扩展。(例如,对于GNUC++-标准=gnu++nn个可以使用选项,但不能使用-标准=c++nn个选项。)

宏:AC_PROG_CXXCPP公司

设置输出变量CXXCPP公司到运行C的命令++预处理器。如果'$CXX-E(美元)“不起作用,尝试一下中央处理器/库/cpp,按顺序。因为这次撤退,CXXCPP公司可以设置也可以不设置C++特定的预定义宏(例如__cplusplus加).

它便于携带运行CXXCPP公司仅在具有.c类,.C类,.cc(立方厘米),或.cpp文件扩展。

一些预处理器没有通过错误指示缺少包含文件状态。对于这样的预处理器,会设置一个内部变量,导致其他宏来检查预处理器的标准错误,以及如果报告了任何警告,则认为测试失败。然而,目前尚不清楚C++是否存在此类损坏的预处理器。

宏:AC_PROG_CXX_C_O型

测试C++编译器是否接受这些选项-c(c)-o个同时,并定义CXX_NO_MINUS_C_MINUS-O,如果没有。