簡體   English   中英

如何在不編輯 Makefile 的情況下將 append 轉換為 Makefile 中的 CXXFLAGS?

[英]How to append to CXXFLAGS in Makefile without editing Makefile?

我正在為 Qt 應用程序編寫構建腳本。 該腳本首先在 .pro 文件上調用qmake ,然后運行make CXXFLAGS=-DSWVERSION=xxxx

這個問題是它覆蓋了 Makefile 中已經定義的 CXXFLAGS。目前,我知道解決這個問題的唯一方法是編輯 Makefile 並更改它:

CXXFLAGS      = <flags>

對此:

CXXFLAGS      += <flags>

我希望有一個更簡單的解決方案。 有什么辦法可以從命令行簡單地將 append 轉換為 CXXFLAGS 而無需重寫 Makefile?

或者,我真正的問題是在構建時定義SWVERSION (因為它取決於構建時間戳)。 您知道在運行時定義它而不是將其傳遞給 CXXFLAGS 的更好方法嗎?

您建議的更改無論如何都行不通:命令行上設置的值完全覆蓋 makefile 中設置的值,即使該值附加了+=也是如此。 你可以這樣做並且它會起作用:

override CXXFLAGS += <flags>

但是,通常的做法是 makefile 提供專門保留的變量,供用戶在命令行上覆蓋。 例如在 automake 生成的 makefile 中,諸如CXXFLAGSCFLAGS等公共變量保留供用戶通過命令行或環境設置,而內部 makefile 標志被放入不同的變量中,如AM_CFLAGS 然后編譯對象的方法使用兩個變量,比如$(CC) $(AM_CFLAGS) $(CFLAGS)...

我對 qt 一無所知,所以我不能說他們是否有一組類似的保留 makefile 變量,但您可以查看 qt 文檔,或您生成的 makefile 食譜,看看。

對於以后閱讀本文的任何人,我找到的解決方案是調用qmake <project file> DEFINES+="SWVERSION=xxxx" 希望有人覺得這有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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