[英]Make compiler warn about Gtkmm deprecations
我開始考慮將我的應用程序從 Gtkmm 3.24 移植到 Gtkmm 4.x(還不確定哪個版本)。 目前,我只是想了解到底什么被棄用了,以及規划需要做多少工作。 簡化移植的一種方法是查看 Gtkmm 3.24 版本中所有已棄用的用法,並在移植前將它們更新為較新的風格。 我發現了幾個可以幫助解決這個問題的宏:
GTKMM_DISABLE_DEPRECATED
GDKMM_DISABLE_DEPRECATED
GLIBMM_DISABLE_DEPRECATED
GIOMM_DISABLE_DEPRECATED
當我#define
這些時,編譯器在遇到不推薦使用的東西時會拋出錯誤,因為它們已被禁用。 這很好,一旦代碼升級,就可以確保代碼沒有被棄用的用法。
然而,在我的例子中,代碼仍然充滿了棄用,編譯器在遇到第一個棄用時停止編譯。 這對我理解棄用的位置和需要做多少工作沒有多大幫助。 我可以 go 解決每一個錯誤,一個一個地解決,直到沒有更多(這最終是我要做的)但我無法提前知道這需要多少時間。
我真正想要的是在遇到棄用時拋出警告的宏,但讓編譯器 go 繼續構建。 通過這種方式,我可以獲得代碼庫中已棄用的所有內容的列表,並適當地計划工作。 我瀏覽了 Gtkmm 文檔和代碼庫,但一無所獲。
這樣的宏是否存在,如果存在,它們是什么?
解決方案是使用
GTKMM_DISABLE_DEPRECATED
GDKMM_DISABLE_DEPRECATED
GLIBMM_DISABLE_DEPRECATED
GIOMM_DISABLE_DEPRECATED
就像我一樣,只是將-k
標志與make
一起使用。 來自man make
:
-k, --keep-going
Continue as much as possible after an error. While the target
that failed, and those that depend on it, cannot be remade, the
other dependencies of these targets can be processed all the same.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.