“致命错误:gtk/gtk.h:没有这样的文件或目录”使用 make

osa*_*ama 27 compiling gtk make

我正在尝试使用 make 命令来构建。我正在关注这个。我正在使用 GTK+2 和 C 语言编译代码

hp@ubuntu:~/amhello$ make
make  all-recursive
make[1]: Entering directory `/home/hp/amhello'
Making all in src
make[2]: Entering directory `/home/hp/amhello/src'
gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT main.o -MD -MP -MF .deps/main.Tpo -c -o         main.o main.c
main.c:3:20: fatal error: gtk/gtk.h: No such file or directory
compilation terminated.
make[2]: *** [main.o] Error 1
make[2]: Leaving directory `/home/hp/amhello/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/hp/amhello'
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)

这是 main.c 代码

#include<config.h>
#include<stdio.h>
#include<gtk/gtk.h>
void static call(GtkWidget *widget,gpointer data) {
    g_print("%s \n",(gchar*) data);
}
int main(int agrc, char *agrv[]) {
    gtk_init(&agrc,&agrv);
    GtkWidget *window,*button;
    window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
    g_signal_connect(window,"delete-event",G_CALLBACK(gtk_main_quit),NULL);
    gtk_window_set_title(GTK_WINDOW(window),"one button");
    button=gtk_button_new_with_label("hello world");
    g_signal_connect(button,"clicked",G_CALLBACK(call),(gpointer) "hello world");
    gtk_container_set_border_width(GTK_CONTAINER(window),10);
    gtk_container_add(GTK_CONTAINER(window),button);
    gtk_widget_show_all(window);
    gtk_main();
    return (0);
}
Run Code Online (Sandbox Code Playgroud)

Bra*_*iam 38

这意味着您没有 gtk 头文件来使用 GTK+ 构建东西。错误没有出现在 ./configure 步骤真的很奇怪。要解决这个问题,只需执行以下操作:

sudo apt-get install libgtk2.0-dev
Run Code Online (Sandbox Code Playgroud)

libgtk-3-dev

那应该这样做。


小智 13

sudo apt-get install build-essential gnome-devel
Run Code Online (Sandbox Code Playgroud)

这也是必要的,以便您可以做很酷的事情,例如:

g++ main.cpp -o base `pkg-config --cflags --libs gtk+-3.0`
Run Code Online (Sandbox Code Playgroud)

它允许您使用pkg-config以节省大量时间