【问题标题】:Make compiler warn about Gtkmm deprecations让编译器警告 Gtkmm 弃用
【发布时间】:2023-01-29 04:54:58
【问题描述】:

我开始考虑将我的应用程序从 Gtkmm 3.24 移植到 Gtkmm 4.x(还不确定哪个版本)。目前,我只是想了解到底什么被弃用了,以及规划需要做多少工作。简化移植的一种方法是查看 Gtkmm 3.24 版本中所有已弃用的用法,并在移植前将它们更新为较新的风格。我发现了几个可以帮助解决这个问题的宏:

GTKMM_DISABLE_DEPRECATED
GDKMM_DISABLE_DEPRECATED
GLIBMM_DISABLE_DEPRECATED
GIOMM_DISABLE_DEPRECATED

当我#define这些时,编译器在遇到不推荐使用的东西时会抛出错误,因为它们已被禁用。这很好,一旦代码升级,就可以确保代码没有被弃用的用法。

然而,在我的例子中,代码仍然充满了弃用,编译器在遇到第一个弃用时停止编译。这对我理解弃用的位置和需要做多少工作没有多大帮助。我可以着手解决每一个错误,一个一个地解决,直到不再有错误(这最终是我要做的),但我无法提前知道这需要多少时间。

我真正想要的是抛出的宏警告当遇到弃用时,但让编译器继续构建。通过这种方式,我可以获得代码库中已弃用的所有内容的列表,并适当地计划工作。我浏览了 Gtkmm 文档和代码库,但一无所获。

这样的宏是否存在,如果存在,它们是什么?

【问题讨论】:

    标签: gtk gtkmm gtkmm3 gtkmm4


    【解决方案1】:

    解决方案是使用

    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.
    

    来源:Inskape GTK+ 3 migration wiki page

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-10
      • 2018-12-12
      • 2020-07-18
      相关资源
      最近更新 更多