假设我正在编译某个应用程序(代码库采用 C 语言编写,使用 gcc 作为默认编译器,从 github 克隆 git...)并执行./configure --flags1 --flags2 ...
编译完成后,我想知道我使用的标志./configure
(在这个假设的情况下,我无法通过查看我的 shell 历史记录来知道它,因为它丢失了)。
标志列表可能很长,我不想浪费时间寻找这些标志(特别是因为有些标志无法记录在前面提到的应用程序中)。
有什么方法可以知道用于编译的应用程序的标志吗?也许通过查看./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 轻松解析该信息,并将该信息作为字符串包含在二进制文件中。不过,我不知道是否有其他程序可以做到这一点;-)