我正在為 Qt 應用程式撰寫構建腳本。該腳本首先呼叫qmake.pro 檔案,然后運行make CXXFLAGS=-DSWVERSION=xxxx??.
這樣做的問題是它覆寫了 Makefile 中已經定義的 CXXFLAGS。目前,我知道解決此問題的唯一方法是編輯 Makefile 并更改它:
CXXFLAGS = <flags>
對此:
CXXFLAGS = <flags>
我希望有一個更簡單的解決方案。有什么方法可以簡單地從命令列附加到 CXXFLAGS 而無需重寫 Makefile?
或者,我真正的問題是SWVERSION在構建時定義(因為它取決于構建時間戳)。您是否知道在運行時定義它而不是將其傳遞給 CXXFLAGS 的更好方法?
uj5u.com熱心網友回復:
您建議的更改無論如何都不起作用:在命令列上設定的值完全覆寫在 makefile 中設定的值,即使該值附加到 with =。你可以這樣做,它會作業:
override CXXFLAGS = <flags>
但是,通常的做法是,makefile 提供了專門為用戶保留的變數,以便在命令列上覆寫。例如,在自動生成的 makefile 中,常用變數如CXXFLAGS,CFLAGS等保留給用戶通過命令列或環境設定,內部 makefile 標志被放入不同的變數中,如AM_CFLAGS. 然后編譯物件的方法使用這兩個變數,比如$(CC) $(AM_CFLAGS) $(CFLAGS) ...
我對 qt 一無所知,所以我不能說它們是否有一組類似的保留 makefile 變數,但您可以查看 qt 檔案或您生成的 makefile 配方以查看。
uj5u.com熱心網友回復:
對于將來閱讀本文的任何人,我找到的解決方案是呼叫qmake <project file> DEFINES ="SWVERSION=xxxx". 希望有人覺得這很有幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/464123.html
下一篇:為檔案夾中的每個影像生成縮略圖
