首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复gtkmm警告:废弃声明

如何修复gtkmm警告:废弃声明
EN

Stack Overflow用户
提问于 2020-04-29 00:49:39
回答 3查看 2K关注 0票数 0

没有编译器的警告,我无法工作任何程序(包括gtkmm)。

怎么解决这个问题?

(没有#语用GCC诊断被忽视“-建议-声明”)

谢谢。

代码:

代码语言:javascript
复制
#include <gtkmm.h>

int main(){

}

命令(用于编译的shell脚本):

代码语言:javascript
复制
# /bin/sh

g++ main.cpp $(pkg-config --libs --cflags gtkmm-3.0)

./a.out

警告:

代码语言:javascript
复制
In file included from /usr/include/glibmm-2.4/glibmm/thread.h:48,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/timeval.h:38:42: warning: ‘GTimeVal’ is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   38 |   inline TimeVal(const GTimeVal& gtimeval);
      |                                          ^
In file included from /usr/include/glib-2.0/glib/galloca.h:32,
                 from /usr/include/glib-2.0/glib.h:30,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/gtypes.h:549:26: note: declared here
  549 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm/thread.h:48,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/timeval.h:39:53: warning: ‘GTimeVal’ is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
   39 |   inline TimeVal& operator=(const GTimeVal& gtimeval);
      |                                                     ^
In file included from /usr/include/glib-2.0/glib/galloca.h:32,
                 from /usr/include/glib-2.0/glib.h:30,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/gtypes.h:549:26: note: declared here
  549 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm/thread.h:48,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/timeval.h:104:49: warning: ‘GTimeVal’ is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  104 | inline TimeVal::TimeVal(const GTimeVal& gtimeval)
      |                                                 ^
In file included from /usr/include/glib-2.0/glib/galloca.h:32,
                 from /usr/include/glib-2.0/glib.h:30,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/gtypes.h:549:26: note: declared here
  549 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm/thread.h:48,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/timeval.h:111:44: warning: ‘GTimeVal’ is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  111 | TimeVal::operator=(const GTimeVal& gtimeval)
      |                                            ^
In file included from /usr/include/glib-2.0/glib/galloca.h:32,
                 from /usr/include/glib-2.0/glib.h:30,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/gtypes.h:549:26: note: declared here
  549 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/thread.h:139:52: warning: ‘GThreadFunctions’ is deprecated [-Wdeprecated-declarations]
  139 | void thread_init(GThreadFunctions* vtable = nullptr);
      |                                                    ^
In file included from /usr/include/glib-2.0/glib.h:110,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:55:34: note: declared here
   55 | typedef struct _GThreadFunctions GThreadFunctions GLIB_DEPRECATED_TYPE_IN_2_32;
      |                                  ^~~~~~~~~~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/thread.h:399:22: warning: ‘GStaticMutex’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
  399 |   GStaticMutex* gobj() { return &gobject_; }
      |                      ^
In file included from /usr/include/glib-2.0/glib.h:110,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:136:3: note: declared here
  136 | } GStaticMutex GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GMutex);
      |   ^~~~~~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/thread.h:403:16: warning: ‘GStaticMutex’ is deprecated: Use 'GMutex' instead [-Wdeprecated-declarations]
  403 |   GStaticMutex gobject_;
      |                ^~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:110,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:136:3: note: declared here
  136 | } GStaticMutex GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GMutex);
      |   ^~~~~~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/thread.h:525:25: warning: ‘GStaticRecMutex’ is deprecated: Use 'GRecMutex' instead [-Wdeprecated-declarations]
  525 |   GStaticRecMutex* gobj() { return &gobject_; }
      |                         ^
In file included from /usr/include/glib-2.0/glib.h:110,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:152:33: note: declared here
  152 | typedef struct _GStaticRecMutex GStaticRecMutex GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GRecMutex);
      |                                 ^~~~~~~~~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/thread.h:529:19: warning: ‘GStaticRecMutex’ is deprecated: Use 'GRecMutex' instead [-Wdeprecated-declarations]
  529 |   GStaticRecMutex gobject_;
      |                   ^~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:110,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:152:33: note: declared here
  152 | typedef struct _GStaticRecMutex GStaticRecMutex GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GRecMutex);
      |                                 ^~~~~~~~~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/thread.h:602:23: warning: ‘GStaticRWLock’ is deprecated: Use 'GRWLock' instead [-Wdeprecated-declarations]
  602 |   GStaticRWLock* gobj() { return &gobject_; }
      |                       ^
In file included from /usr/include/glib-2.0/glib.h:110,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:193:31: note: declared here
  193 | typedef struct _GStaticRWLock GStaticRWLock GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GRWLock);
      |                               ^~~~~~~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/thread.h:606:17: warning: ‘GStaticRWLock’ is deprecated: Use 'GRWLock' instead [-Wdeprecated-declarations]
  606 |   GStaticRWLock gobject_;
      |                 ^~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:110,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:193:31: note: declared here
  193 | typedef struct _GStaticRWLock GStaticRWLock GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GRWLock);
      |                               ^~~~~~~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/thread.h:787:24: warning: ‘GStaticPrivate’ is deprecated: Use 'GPrivate' instead [-Wdeprecated-declarations]
  787 |   GStaticPrivate* gobj() { return &gobject_; }
      |                        ^
In file included from /usr/include/glib-2.0/glib.h:110,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:235:33: note: declared here
  235 | typedef struct _GStaticPrivate  GStaticPrivate GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GPrivate);
      |                                 ^~~~~~~~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/thread.h:791:18: warning: ‘GStaticPrivate’ is deprecated: Use 'GPrivate' instead [-Wdeprecated-declarations]
  791 |   GStaticPrivate gobject_;
      |                  ^~~~~~~~
In file included from /usr/include/glib-2.0/glib.h:110,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:235:33: note: declared here
  235 | typedef struct _GStaticPrivate  GStaticPrivate GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GPrivate);
      |                                 ^~~~~~~~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/thread.h:1090:59: warning: ‘GStaticPrivate’ is deprecated: Use 'GPrivate' instead [-Wdeprecated-declarations]
 1090 | void* StaticPrivate_get_helper(GStaticPrivate *private_key);
      |                                                           ^
In file included from /usr/include/glib-2.0/glib.h:110,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:235:33: note: declared here
  235 | typedef struct _GStaticPrivate  GStaticPrivate GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GPrivate);
      |                                 ^~~~~~~~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/thread.h:1100:96: warning: ‘GStaticPrivate’ is deprecated: Use 'GPrivate' instead [-Wdeprecated-declarations]
 1100 | void StaticPrivate_set_helper(GStaticPrivate *private_key, gpointer data, GDestroyNotify notify);
      |                                                                                                ^
In file included from /usr/include/glib-2.0/glib.h:110,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/deprecated/gthread.h:235:33: note: declared here
  235 | typedef struct _GStaticPrivate  GStaticPrivate GLIB_DEPRECATED_TYPE_IN_2_32_FOR(GPrivate);
      |                                 ^~~~~~~~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm/binding.h:22,
                 from /usr/include/glibmm-2.4/glibmm.h:97,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/object.h:73:15: warning: ‘GParameter’ is deprecated [-Wdeprecated-declarations]
   73 |   GParameter* parameters;
      |               ^~~~~~~~~~
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:29,
                 from /usr/include/glib-2.0/glib-object.h:23,
                 from /usr/include/glibmm-2.4/glibmm/value.h:24,
                 from /usr/include/glibmm-2.4/glibmm/error.h:22,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:47,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/gobject/gparam.h:194:28: note: declared here
  194 | typedef struct _GParameter GParameter GLIB_DEPRECATED_TYPE_IN_2_54;
      |                            ^~~~~~~~~~
In file included from /usr/include/glibmm-2.4/glibmm.h:105,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/date.h:261:27: warning: ‘GTime’ is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  261 |   void set_time(GTime time);
      |                           ^
In file included from /usr/include/glib-2.0/glib.h:43,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/gdate.h:48:17: note: declared here
   48 | typedef gint32  GTime GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                 ^~~~~
In file included from /usr/include/glibmm-2.4/glibmm.h:105,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glibmm-2.4/glibmm/date.h:287:40: warning: ‘GTimeVal’ is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  287 |   void set_time(const GTimeVal& timeval);
      |                                        ^
In file included from /usr/include/glib-2.0/glib/galloca.h:32,
                 from /usr/include/glib-2.0/glib.h:30,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/gtypes.h:549:26: note: declared here
  549 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |                          ^~~~~~~~
In file included from /usr/include/gdkmm-3.0/gdkmm.h:28,
                 from /usr/include/gtkmm-3.0/gtkmm.h:92,
                 from main.cpp:3:
/usr/include/gdkmm-3.0/gdkmm/pixbufanimation.h:184:72: warning: ‘GTimeVal’ is deprecated: Use 'GDateTime' instead [-Wdeprecated-declarations]
  184 |   Glib::RefPtr<PixbufAnimationIter> get_iter(const GTimeVal* start_time);
      |                                                                        ^
In file included from /usr/include/glib-2.0/glib/galloca.h:32,
                 from /usr/include/glib-2.0/glib.h:30,
                 from /usr/include/glibmm-2.4/glibmm/thread.h:38,
                 from /usr/include/glibmm-2.4/glibmm.h:88,
                 from /usr/include/gtkmm-3.0/gtkmm.h:87,
                 from main.cpp:3:
/usr/include/glib-2.0/glib/gtypes.h:549:26: note: declared here
  549 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime);
      |

环境:

Ubuntu 19.10

  • compiler : g++ 9.2.1

  • library : libgtkmm-3.0-dev 3.24.1
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-04-29 02:18:03

您可以使用-isystem标志将源自库标头的警告沉默到GCC或Clang,而不是-I。(要在当前的设置中做到这一点,您可能必须在sed命令的输出上运行一些pkg-config --cflags表达式。)

票数 2
EN

Stack Overflow用户

发布于 2020-05-27 07:41:06

我和gcc有同样的错误,我可以通过添加CFLAGS来修正它:

代码语言:javascript
复制
CC = gcc

CFLAGS = -Wall -Wunused                 \
        -DG_DISABLE_DEPRECATED          \
        -DGDK_DISABLE_DEPRECATED        \
        -DGDK_PIXBUF_DISABLE_DEPRECATED \
        -DGTK_DISABLE_DEPRECATED
票数 1
EN

Stack Overflow用户

发布于 2020-08-11 18:14:10

唯一对我起作用的是编译器选项:

代码语言:javascript
复制
-Wno-deprecated-declarations

可能有点过火了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61492408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档