簡體   English   中英

Makefile.in 中的@CPPFLAGS@ 是什么意思?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM