![autoconf 将 ./configure 命令行保存到 config.h](https://linux22.com/image/22191/autoconf%20%E5%B0%86%20.%2Fconfigure%20%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%BF%9D%E5%AD%98%E5%88%B0%20config.h.png)
一些二进制文件将用于配置它们的命令行保存在二进制文件中(我不记得有任何这样做,否则我会检查源代码)。有没有办法获取在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 中。