代码之家  ›  专栏  ›  技术社区  ›  Razican

如何在程序的自动检查中设置常量?

  •  2
  • Razican  · 技术社区  · 10 年前

    我正在使用自动工具,我有一个配置。ac脚本,该脚本表示:

    AC_CHECK_PROG(RASPIVID, raspivid, yes)
    

    但是,生成的配置。h文件未显示RASPIVID常量。我做错什么了吗?

    1 回复  |  直到 10 年前
        1
  •  3
  •   user539810 user539810    10 年前

    这个 AC_CHECK_PROG 宏对config不做任何操作。h本身。从…起 the manual :

    交流检查记录 ( 变量 , 要检查的程序 , 值(如果找到) , [ 值(如果找不到) ], [ 路径 =“$PATH”][ 拒绝 ])

    检查程序是否 要检查的程序 路径中存在。如果找到,则设置 变量 值(如果找到) ,否则为 值(如果找不到) ,如果给定。始终忽略 拒绝 (绝对文件名),即使它是搜索路径中第一个找到的;在这种情况下,设置 变量 使用 要检查的程序 发现不是 拒绝 如果 变量 已设置,不执行任何操作。电话 交流_订阅 对于 变量 。可以通过设置 变量 变量或缓存变量ac_cv_prog_ 变量 .

    所以 AC_CHECK_PROG(RASPIVID, raspivid, yes) 将检查 raspivid 存在。如果是,它将设置shell变量 RASPIVID yes ,因此您可以在 交流检查记录 调用,例如:

    AC_CHECK_PROG([RASPIVID], [raspivid], [yes])
    AS_IF([test "x$RASPIVID" = xyes],
        [AC_DEFINE([HAVE_RASPIVID], [1], [raspivid is available.])])
    

    AC_SUBST 将如文档中所述被调用,因此您可以使用 $(RASPIVID) 在makefile或输出文件中。