как исправить предупреждение gtkmm: не рекомендуется - PullRequest
0 голосов
/ 29 апреля 2020

Я не могу работать с программами (включая gtkmm) без предупреждения компилятора.

Как это исправить?
(без #pragma G CC Diagnosti c игнорируется " -Wdeprecated-декларации ")

Спасибо.

код:

#include <gtkmm.h>

int main(){

}

команда (сценарий оболочки для компиляции):

# /bin/sh

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

./a.out

предупреждения :

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

  • компилятор: g ++ 9.2 .1

  • библиотека: libgtkmm-3.0-dev 3.24.1

1 Ответ

0 голосов
/ 29 апреля 2020

Вы можете отключить предупреждения, исходящие от заголовков библиотеки, включив их, используя флаг -isystem для G CC или Clang вместо -I. (Чтобы сделать это в текущей настройке, вам, вероятно, потребуется выполнить какое-то выражение sed в выходных данных вашей команды pkg-config --cflags.)

...