确定要使用的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公司
:
哪里选项是合适的选项集违约。(重要的是使用此构造而不是正常分配,以便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个选项。)