gtk+-2.20.0 两个bug

gtk 官方最新的库gtk+-2.20.0有两个bug导致编译失败,可以通过下面方法修改:

(1)在gdk.symbols 871行后面增加:

863 #if IN_HEADER(__GDK_KEYS_H__)

864 #if IN_FILE(__GDK_KEYS_DIRECTFB_C__)

865 gdk_keymap_get_direction

866 gdk_keymap_get_entries_for_keycode

867 gdk_keymap_get_entries_for_keyval

868 gdk_keymap_get_for_display

869 gdk_keymap_get_caps_lock_state

870 gdk_keymap_lookup_key

871 gdk_keymap_translate_keyboard_state

+872 gdk_keymap_map_virtual_modifiers

+873 gdk_keymap_add_virtual_modifiers

874 gdk_keyval_from_name

875 gdk_keyval_name G_GNUC_CONST

876 #endif

877 #endif

(2)在gdk/directfb/gdkkeys-directfb.c 增加上面两个函数的定义

+ 2001 gboolean

+ 2002 gdk_keymap_map_virtual_modifiers (GdkKeymap *keymap,

+ 2003 GdkModifierType *state)

+ 2004 {

+ 2005 g_warning("gdk_keymap_add_virtual_modifiers unimplemented /n");

+ 2006 return TRUE;

+ 2007 }

+ 2008 void

+ 2009 gdk_keymap_add_virtual_modifiers (GdkKeymap *keymap,

+ 2010 GdkModifierType *state)

+ 2011 {

+ 2012 g_warning("gdk_keymap_map_virtual_modifiers unimplemented /n");

+ 2013 return TRUE;

+ 2014 }

### 如何解决缺少 gtk+-2.0 包的问题 在遇到“`No package 'gtk+-2.0' found`”的错误时,这通常表明系统中未安装 GTK+ 2.0 的开发包或其版本不满足要求。以下是针对不同操作系统的安装和配置方法。 #### 在 Ubuntu 系统中安装 gtk+-2.0 对于基于 Debian 的 Linux 发行版(如 Ubuntu),可以通过以下命令安装 GTK+ 2.0 的开发包: ```bash sudo apt update sudo apt install libgtk2.0-dev ``` 此命令会安装 GTK+ 2.0 的开发库及其依赖项[^2]。安装完成后,可以使用 `pkg-config` 检查是否正确安装: ```bash pkg-config --cflags --libs gtk+-2.0 ``` 如果输出包含头文件路径和库文件路径,则说明安装成功。 #### 在 Windows 系统中配置 gtk+-2.0 对于 Windows 用户,可以按照以下步骤手动安装和配置 GTK+ 2.0: 1. **下载并解压 GTK+ 安装包** 下载 GTK+ 的 Windows 版本安装包(例如:`gtk+-bundle_2.24.10-20120208_win32.zip`),并将其解压到一个目录中(如:`D:\MinGW\gtk+-bundle_2.24.10-20120208_win32`)[^3]。 2. **配置环境变量** 将解压后的 GTK+ 目录中的 `\bin` 文件夹路径添加到系统的环境变量 `PATH` 中。例如: ``` D:\MinGW\gtk+-bundle_2.24.10-20120208_win32\bin ``` 这一步确保编译器和运行时能够找到所需的 `.dll` 文件。 3. **在 IDE 中配置 GTK+ 路径** 如果使用 Code::Blocks 或其他 IDE,需要在项目设置中指定 GTK+ 的头文件和库文件路径。具体路径如下: - 头文件路径:`D:\MinGW\gtk+-bundle_2.24.10-20120208_win32\include` - 库文件路径:`D:\MinGW\gtk+-bundle_2.24.10-20120208_win32\lib` #### 编译时的注意事项 在编译 GTK+ 程序时,应使用倒引号(`` ` ``)而不是单引号(`'`)来包含 `pkg-config` 命令的结果。正确的编译命令如下: ```bash gcc base.c -o base `pkg-config --cflags --libs gtk+-2.0` ``` 如果使用单引号,会导致编译器无法识别 `pkg-config` 的输出,从而报错[^4]。 ### 示例代码 以下是一个简单的 GTK+ 程序示例: ```c #include <gtk/gtk.h> int main(int argc, char *argv[]) { GtkWidget *window; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "Hello World"); gtk_widget_show(window); g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); gtk_main(); return 0; } ``` 编译上述代码时,请确保使用正确的命令格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值