一部のバイナリは、バイナリ内に構成に使用するコマンド ラインを保存します (保存するものは覚えていませんが、そうでない場合はソースを確認します)。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
。autoconf マニュアルこれを直後に実行する必要があります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 にあります。