6.4运行编译器

要检查当前语言的语法功能(请参见语言选择)编译器,例如它是否识别某个关键字,或只需尝试一些库功能,请使用AC_COMPILE_IFELSE公司尝试编译一个使用该功能的小程序。

宏:AC_COMPILE_IFELSE公司 (输入,[如果为true,则执行操作],[操作-if-false])

运行当前语言的编译器和编译标志(请参见语言选择)在上输入,运行shell命令如果为true,则执行操作成功,操作-if-false否则。

如果输入非空使用等效于AC_范围_测试(输入)生成当前测试源文件;否则,重用已经存在的测试源文件。这个输入可以由AC_范围_程序和朋友。这个输入文本被展开为未引用的here文档,因此$’, ‘`“还有一些”\的应该是反斜杠。请参见此处-文档.

通常报告意外故障AC_MSG_故障。此宏不尝试链接;使用AC_LINK_IFELSE公司如果需要这样做(请参见运行链接器). 如果需要,如果为true,则执行操作可以进一步访问仅编译的对象文件conftest公司$OBJEXT公司.

此宏使用空调_设备与关联的编译器当前语言,这意味着如果编译器尚未确定后,编译器将在最外面的AC_DEFUN公司触发此宏的宏展开(请参见在需要之前展开).

对于Erlang中的测试输入必须是名为的模块的源代码conftest公司.AC_COMPILE_IFELSE公司生成conftest.beam公司Erlang虚拟机可以解释的文件(厄勒). 它是建议使用AC_范围_程序指定测试程序,以确保Erlang模块具有正确的名称。