C语言 如何包括正确的GTK .h文件的GTK linux开发?



在Linux Mint 20.1上,我已经使用命令安装了libgtk-3.0-dev包:

sudo apt install libgtk-3.0-dev

安装是成功的,但当我试图编译一个简单的例子:

// Include gtk
#include <gtk/gtk.h>
static void on_activate (GtkApplication *app) {
// Create a new window
GtkWidget *window = gtk_application_window_new (app);
// Create a new button
GtkWidget *button = gtk_button_new_with_label ("Hello, World!");
// When the button is clicked, close the window passed as an argument
g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_window_close), window);
gtk_window_set_child (GTK_WINDOW (window), button);
gtk_window_present (GTK_WINDOW (window));
}
int main (int argc, char *argv[]) {
// Create a new application
GtkApplication *app = gtk_application_new("com.example.GtkApplication", G_APPLICATION_FLAGS_NONE);
g_signal_connect (app, "activate", G_CALLBACK (on_activate), NULL);
return g_application_run (G_APPLICATION (app), argc, argv);
}

但是编译器给了我一个错误,它找不到头文件。我可能遗漏了什么。有人能告诉我怎么解决这个问题吗?

我使用以下命令进行编译:

gcc -I/usr/include/gtk-3.0 -I/usr/include/glib-2.0  gtk_app.c
我得到的错误是:
In file included from /usr/include/glib-2.0/glib/galloca.h:32,
from /usr/include/glib-2.0/glib.h:30,
from /usr/include/gtk-3.0/gdk/gdkconfig.h:13,
from /usr/include/gtk-3.0/gdk/gdk.h:30,
from /usr/include/gtk-3.0/gtk/gtk.h:30,
from gtk_app.c:2:
/usr/include/glib-2.0/glib/gtypes.h:32:10: fatal error: glibconfig.h: No such file or directory
32 | #include <glibconfig.h>

必须向编译器提供头文件和库的路径信息。

对于编译,可以通过选项(包括反刻度)

`pkg-config --cflags gtk+-3.0`

链接时可以添加

`pkg-config --libs gtk+-3.0`

从你的错误信息看来,你的问题不是GTK,而是GLIB。您也应该为glib-2.0包添加相同的命令。

最新更新