簡體   English   中英

讓編譯器警告 Gtkmm 棄用

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

來源: Inkscape GTK+ 3 遷移維基頁面

暫無
暫無

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

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