いくつかのアプリケーション(Cで書かれたコードベース、gccをデフォルトのコンパイラとして使用し、githubでgitを複製する...)をコンパイルして実行するとしましょう。./configure --flags1 --flags2 ...
コンパイルが完了した後、私が使用したフラグを知りたいです./configure
(この仮想の場合、フラグが欠落しているため、シェル履歴を見てもわかりません)。
フラグのリストはかなり長くなる可能性があるため、これを見つけるのに時間を無駄にしたくありません(特に、前述のアプリケーションではいくつかのフラグを記録できないため)。
コンパイルされたアプリケーションで使用されるフラグを知る方法はありますか?たぶん./configure
生成されたファイルを見てみましょうか?
答え1
場所は次のとおりですconfig.log
。
head -n8 config.log
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by configure, which was
generated by GNU Autoconf 2.52.20190901. Invocation command line was
$ ./configure --enable-trace
Makefileの一部のsedを使用して、この情報を簡単に解析し、バイナリに文字列として含めることができます。しかし、これを行うことができる他のプログラムがあるかどうかはわかりません。 ;-)