我使用的是自动工具,我有一个configure.ac脚本,上面写着:
AC_CHECK_PROG(RASPIVID, raspivid, yes)但是,生成的config.h文件不显示RASPIVID常量。我做错了什么吗?
发布于 2015-07-20 00:29:38
AC_CHECK_PROG宏本身不会对config.h做任何事情。来自手册
AC_CHECK_PROG (变量、prog for、value-if-found、value-if-variable、path = '$PATH‘、reject) 检查路径中是否存在程序进程到检查。如果找到了,将变量设置为值-如果找到了,否则设置为值-如果没有找到,如果给定的话。始终传递拒绝(一个绝对文件名),即使它是搜索路径中的第一个找到的;在这种情况下,使用prog的绝对文件名设置变量,以检查找到的不拒绝。如果变量已经设置,则不做任何操作。调用AC_SUBST作为变量。可以通过设置变量变量或缓存变量ac_cv_prog_variable来覆盖此测试的结果。
因此,AC_CHECK_PROG(RASPIVID, raspivid, yes)将检查raspivid是否存在。如果是这样,它将将shell变量RASPIVID设置为值yes,以便在AC_CHECK_PROG调用之后执行测试,如:
AC_CHECK_PROG([RASPIVID], [raspivid], [yes])
AS_IF([test "x$RASPIVID" = xyes],
[AC_DEFINE([HAVE_RASPIVID], [1], [raspivid is available.])])正如文档中提到的那样,AC_SUBST已经被调用了,所以您可以在makefile中使用$(RASPIVID)或者任何输出文件。
https://stackoverflow.com/questions/31505513
复制相似问题