autoconf 將 ./configure 命令列儲存到 config.h

autoconf 將 ./configure 命令列儲存到 config.h

一些二進位檔案將用於配置它們的命令列保存在二進位檔案中(我不記得有任何這樣做,否則我會檢查原始程式碼)。有沒有辦法取得在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 巨集引導的 shell 腳本,因此您可以使用$*它來獲取./configure.按照自動配置手冊你應該在之後立即執行此操作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 中。

相關內容