簡體   English   中英

GTK 3.0給編譯器錯誤“僅 <gdk/gdkh> 可以直接包含在內”

[英]GTK 3.0 gives compiler error “Only <gdk/gdkh> can be included directly”

正在從事GTK ++項目。 使用Ubuntu的libgtk2.0-dev庫時,該編譯成功。 刪除該庫並安裝libgtk3.0-dev庫后,在編譯時出現以下錯誤消息:

In file included from file_operations.c:4:0:
/usr/include/gtk-3.0/gdk/gdkevents.h:26:2 #error: Only <gdk/gdkh> can be included directly.

這是編譯命令:

gcc -Wall -o gexplorer2 main.c file_operations.c -I. -I/usr/include/gnome-vfs-2.0 -D _FILE_OFFSET_BITS=64 `pkg-config --cflags gtk+-3.0` `pkg-config --libs gtk+-3.0` `pkg-config --cflags gio-2.0`

file_operations.c具有以下內容:

#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <gdk/gdkkeysyms.h>
#include <gdk/gdkevents.h>

在gdkevents.h中,以下幾行生成編譯器錯誤

#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION)
#error "Only <gdk/gdkh> can be included directly."
#endif

(這些行不在GTK 2.0的包含文件中。)

猜測或知識是什么導致此錯誤,以及如何解決?

這里的想法似乎是GDK作者不鼓勵您直接包含特定的GDK標頭(大概是因為這些標頭具有細微的依賴關系,而這些顯式的依賴關系沒有用明確的include拼寫出來)。

因此,按照他們說的去做,刪除<gdk/x>包含項,而改為包含<gdk/gdkh> 大概應該包括您想要的API。

暫無
暫無

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

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