[英]What does it means @CPPFLAGS@ in Makefile.in?
我有一個Makefile.in文件,它通過配置生成一個Makefile.am 。 之后使用 automake Makefile.am 創建Makefile 。
現在我想在生成的 Makefile 中添加一個定義。 問題是,在生成的 Makefile 中,我在變量CPPFLAGS 中找到了一個標志列表,但在 Makefile.in 中 CPPFLAGS 的定義中,我只找到了以下列方式寫入的一行:
CPPFLAGS = @CPPFLAGS@
@CPPFLAGS@
是什么意思? 以及如何在生成的 Makefile 中設置新標志?
CPPFLAGS 代表 C 預處理器標志。
您可以將其設置為環境變量或通過命令行:
CPPFLAGS="-g -Wall -O0" automake
或者
CPPFLAGS="-g -Wall -O0" make
從 gnu Make 手冊:
CPPF標志
Extra flags to give to the C preprocessor and programs that use it (the C and Fortran compilers).
該字符串@CPPFLAGS@
由配置腳本擴展為CPPFLAGS當時值configure
被執行。 換句話說,如果您運行configure CPPFLAGS=foo
,那么@CPPFLAGS@
將被擴展為字符串foo
。
Automake 在調用 configure 之前就已經運行很久了。 automake 所做的只是在構建該文件時將字符串@CPPFLAGS@
添加到 Makefile.in 中。
作為項目維護者,您不應編輯這些值。 這是用戶能夠在配置時向構建添加標志的機制。
如果你想添加標志,你應該在 Makefile.am 中分配給AM_CPPFLAGS
。 但很可能你並不真的想這樣做。 這很難說,這取決於您認為要添加的標志。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.