windows 7 上代码块中的 gdk (gtk3)

gdk (gtk3) in codeblocks on windows 7

我在 windows 7 上的代码块 13.2 中配置了 gtk3+(我已将 gtk2+ 更改为 gtk3+), 并创建了新的 gtk+ (exmaple) 项目。此示例项目已编译并正常运行。

接下来我包含了 gdk:

#include <gdk/gdk.h>

但是当我添加这些行时:

gdk_init(&argc, &argv);

GdkScreen *screen = gdk_screen_get_default();`

我有 2 个错误:

undefined referrence to 'gdk_init' and
undefined referrence to 'gdk_screen_get_default'

问题出在哪里?我正在寻找具体的解决方案。

编译日志:

||=== Build: Debug in gtk4test (compiler: GNU GCC Compiler) ===|
C:\myp\gtk4test\main.c||In function 'main':|
C:\myp\gtk4test\main.c|37|warning: 'gtk_vbox_new' is deprecated (declared at C:\gtk\include\gtk-3.0/gtk/deprecated/gtkvbox.h:60): Use 'gtk_box_new' instead [-Wdeprecated-declarations]|
C:\myp\gtk4test\main.c|53|warning: unused variable 'screen' [-Wunused-variable]|
obj\Debug\main.o||In function `main':|
C:\myp\gtk4test\main.c|52|undefined reference to `gdk_init'|
C:\myp\gtk4test\main.c|53|undefined reference to `gdk_screen_get_default'|
||=== Build failed: 2 error(s), 2 warning(s) (0 minute(s), 0 second(s)) ===|

如果您已经调用了 gtk_init,那么您不应该调用 gdk_init(因为 gtk_init 也调用它)。通常,您应该只调用 gdk 函数。

如果出于某种原因需要 gdk_init(),则必须添加

gcc ... `pkg-config --libs --cflags  gdk-3.0` ...

到编译行。请注意,您可能还必须重新配置 IDE 以使用 gdk3 而不是 gdk2。