一部のバイナリは、バイナリ内で設定するために使用されるコマンドラインを保持します(これを行ったことを覚えていません。そうでなければ、ソースコードを確認したかもしれません)。 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マクロでブートストラップされたシェルスクリプトなので、$*
これを使用して./configure
Followを取得できます。自動構成マニュアルこれは直後に行う必要があります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にあります。