autoconf 将 ./configure 命令行保存到 config.h

autoconf 将 ./configure 命令行保存到 config.h

一些二进制文件将用于配置它们的命令行保存在二进制文件中(我不记得有任何这样做,否则我会检查源代码)。有没有办法获取在configure.ac中用作宏的命令行?

例如,如果我用以下命令编译我的代码

./configure --foo bar CXX=g++

我想保存--foo 栏 CXX=g++到 config.h 中的宏,以便可以使用标志由二进制文件输出

./myprogram -V
Version 1.0, compiled using: "./configure --foo bar CXX=g++"

答案1

configure本质上是一个从 M4 宏引导的 shell 脚本,因此您可以使用$*它来获取./configure.按照自动配置手册你应该在之后立即执行此操作AC_INIT,例如:

AC_INIT([My Program], 1.0, ...)
config_flags="$*"
AC_DEFINE_UNQUOTED([CONFIG_FLAGS],["$config_flags"],[Flags passed to configure])

这将#define CONFIG_FLAGS在 config.h 中。

相关内容