首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为GTK linux开发正确地包含gtk.h文件?

如何为GTK linux开发正确地包含gtk.h文件?
EN

Stack Overflow用户
提问于 2021-02-22 22:09:38
回答 1查看 119关注 0票数 0

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

代码语言:javascript
运行
复制
sudo apt install libgtk-3.0-dev

安装是成功的,但是当我尝试编译一个简单的示例时:

代码语言:javascript
运行
复制
 // 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);
}

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

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

代码语言:javascript
运行
复制
  gcc -I/usr/include/gtk-3.0 -I/usr/include/glib-2.0  gtk_app.c

我得到的错误是:

代码语言:javascript
运行
复制
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>
EN

Stack Overflow用户

回答已采纳

发布于 2021-02-22 22:22:11

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

对于编译,可以通过选项(包括反标记)来完成

代码语言:javascript
运行
复制
`pkg-config --cflags gtk+-3.0`

对于链接,您可以添加

代码语言:javascript
运行
复制
`pkg-config --libs gtk+-3.0`

从您的错误消息看,您的问题似乎不是GTK,而是GLIB。您也应该为package glib-2.0添加相同的命令。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66317270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档