GDK (gtk3)在Windows 7上的代码块

gdk (gtk3) in codeblocks on windows 7

本文关键字:代码 Windows gtk3 GDK      更新时间:2023-10-16

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

接下来我加入了gdk:

#include <gdk/gdk.h>

但是当我加上

gdk_init(&argc, &argv);
GdkScreen *screen = gdk_screen_get_default();`

我得到了两个错误:

未定义对'gdk_init'的引用和
对'gdk_screen_get_default'的未定义引用

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

编译日志:

||=== Build: Debug in gtk4test (compiler: GNU GCC Compiler) ===|
C:mypgtk4testmain.c||In function 'main':|
C:mypgtk4testmain.c|37|warning: 'gtk_vbox_new' is deprecated (declared at C:gtkincludegtk-3.0/gtk/deprecated/gtkvbox.h:60): Use 'gtk_box_new' instead [-Wdeprecated-declarations]|
C:mypgtk4testmain.c|53|warning: unused variable 'screen' [-Wunused-variable]|
objDebugmain.o||In function `main':|
C:mypgtk4testmain.c|52|undefined reference to `gdk_init'|
C:mypgtk4testmain.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。