
Допустим, я компилирую какое-то приложение (кодовая база на C, использующая gcc в качестве компилятора по умолчанию, git клонирован с github...) и делаю./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
Вы можете легко разобрать это с помощью sed из Makefile и включить эту информацию в виде строки в ваш двоичный файл. Я не знаю, делает ли это какая-либо другая программа ;-)