linux安装gtk命令,Ubuntu下安装GTK+3的方法
在Ubuntu下安装GTK+3或者安装最新的GTK+4方法是一样的,下面就具体讲解。如果是安装GTK+4,则把下面涉及的命令中的“3”改为“4”即可。如果我们要在Ubuntu系统下使用基于GTK+3开发的App,那么我们无需安装任何东西,直接双击该App即可使用。如果我们要安装GTK+3.0进行开发,可使用以下命令:sudo apt-get install libgtk-3-dev下载安装完毕之后
在Ubuntu下安装GTK+3或者安装最新的GTK+4方法是一样的,下面就具体讲解。如果是安装GTK+4,则把下面涉及的命令中的“3”改为“4”即可。
如果我们要在Ubuntu系统下使用基于GTK+3开发的App,那么我们无需安装任何东西,直接双击该App即可使用。如果我们要安装GTK+3.0进行开发,可使用以下命令:
sudo apt-get install libgtk-3-dev
下载安装完毕之后,我们可以使用以下命令来校验安装是否成功,并且查看GTK+3.0所包含的所有头文件以及库的路径:
pkg-config --cflags --libs gtk+-3.0
如果安装时出现问题的话,我们也可以直接安装GTK+3.0的库以及其依赖项:
sudo apt-get install libgtk3*
现在Gnome开发者网站上最新的版本是GTK+4,安装GTK+4的方法和安装GTK+3是一样的,把命令中的3改成4即可。
下面列出在x86_64环境下使用GTK+3所需要引入的头文件路径以及库路径。
1、所需的头文件路径:
/usr/include/glib-2.0/
/usr/include/atk-1.0/
/usr/include/gdk-pixbuf-2.0/
/usr/include/cairo/
/usr/include/pango-1.0/
/usr/lib/x86_64-linux-gnu/glib-2.0/include/
/usr/include/gtk-3.0/
2、所需的库路径:
/usr/lib/x86_64-linux-gnu/
3、所需要依赖的库:
gtk-3
gobject-2.0
pangocairo-1.0
gio-2.0
atk-1.0
gdk-3
glib-2.0
注意,Linux下的库文件名是前缀lib然后再跟库名,再是.a或.so结尾。
下面举一个简单的例子。
我们先创建一个名为main.c的C源文件,如下所示:
#include
#include
#include
#include
#include
#include
#include
#include
#ifndef var
#define var __auto_type
#endif
static void PrintMsg(GtkWidget *widget, gpointer window)
{
if(window != NULL)
g_printf("Button clicked\n");
var dialog = gtk_message_dialog_new(GTK_WINDOW(window), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, u8"按钮已被按下!");
//gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(window));
//gtk_window_set_modal(GTK_WINDOW(dialog), true);
gtk_window_set_title(GTK_WINDOW(dialog), u8"请注意");
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
}
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
var window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "GTK Test");
gtk_window_set_default_size(GTK_WINDOW(window), 640, 480);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_container_set_border_width(GTK_CONTAINER(window), 15);
var button = gtk_button_new_with_label("Button");
gtk_widget_set_halign(button, GTK_ALIGN_START);
gtk_widget_set_valign(button, GTK_ALIGN_START);
gtk_widget_set_tooltip_text(button, "This is a button widget");
g_signal_connect(button, "clicked", G_CALLBACK(PrintMsg), window);
gtk_container_add(GTK_CONTAINER(window), button);
gtk_widget_show_all(window);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
static_assert(sizeof(int) == 4, "Not compatible architecture!");
puts("Will enter GTK runloop...");
gtk_main();
puts("Program terminated!");
return 0;
}
为了方便编译构建,我们建立一个名为build.sh的shell脚本文件,将它放在与main.c同一个目录下。其内容如下所示:
clang main.c -std=gnu11 -fblocks -lBlocksRuntime -I/usr/include/glib-2.0/ -I/usr/include/atk-1.0/ -I/usr/include/gdk-pixbuf-2.0/ -I/usr/include/cairo/ -I/usr/include/pango-1.0/ -I/usr/lib/x86_64-linux-gnu/glib-2.0/include/ -I/usr/include/gtk-3.0/ -L/usr/lib/x86_64-linux-gnu/ -lgtk-3 -lgobject-2.0 -lpangocairo-1.0 -lgio-2.0 -latk-1.0 -lgdk-3 -lglib-2.0 -o gtk-test
完成之后,我们直接打开命令行终端,进入到该shell脚本文件所在的路径,然后直接输入bash build.sh即可。如果各位没有安装Clang编译器,则可以将上述的clang改为gcc,然后把-fblocks -lBlocksRuntime这两个命令参数去掉。
我们成功生成可执行文件后就可以直接运行它了,还是在当前路径下,输入./gtk-test即可。
相关主题
更多推荐
所有评论(0)