1.把gtk+-3.22.0所依赖的包都编译安装了,并且都配置了LD_LIBRARY_PATH和PKG_CONFIG_PATH变量;
2.最后一步,编译gtk+-3.22.0,总是提示Couldn't find include 'Atk-1.0.gir',编译通不过。
Couldn't find include 'Atk-1.0.gir' (search path: ['../gdk', '/usr/share/gnome/gir-1.0', '/usr/local/share/gir-1.0', '/usr/share/gir-1.0', '/usr/local/share/gir-1.0', '/usr/share/gir-1.0', '/usr/local/share/gir-1.0'])
3.在电脑中收索Atk-1.0.gir文件,发现他在下载的atk-2.22.0源码中,
路径是/atk-2.22.0/atk/Atk-1.0.gir
4.索性我就把源码中的/atk-2.22.0/atk/Atk-1.0.gir文件拷贝到上述的提示路径中,我把他放在/usr/local/share/gir-1.0/里面,然后再编译竟然通过了;
最终没有找到合适的解决方法,暂且用此办法。
5.然后试着自己编译一个例子,GTK官网提供的;代码如下:
#include <gtk/gtk.h>
static void
activate (GtkApplication* app,
gpointer user_data)
{
GtkWidget *window;
window = gtk_application_window_new (app);
gtk_window_set_title (GTK_WINDOW (window), "Window");
gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
gtk_widget_show_all (window);
}
int
main (int argc,
char **argv)
{
GtkApplication *app;
int status;
app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
status = g_application_run (G_APPLICATION (app), argc, argv);
g_object_unref (app);
return status;
}
6编译执行,可以得到结果;
编译命令:
gcc `pkg-config --cflags gtk+-3.0` -o example-0 example-0.c `pkg-config --libs gtk+-3.0`
得到可执行文件example-0,然后执行;
$./example-0
得到窗体如下所示: