rt3 发表于 2023-7-12 20:00:54

msys2环境找不到gtk.h

编译器找不到gtk.h
系统环境为 msys2
已经安装了包mingw-w64-i686-gtk4
/mingw32/include/gtk-4.0/gtk/gtk.h已经存在
源代码

#include <gtk-4.0/gtk/gtk.h>

int main(int argc, char *argv[])
{
    GtkWidget *window;
    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_widget_show(window);
    g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
    gtk_main();
    return 0;
}

如图
谢谢

isdkz 发表于 2023-7-12 20:00:55

首先,你已经确认gtk.h在你的系统中存在,那就排除了头文件不存在的问题。从你给出的源代码来看,你试图在包含gtk.h头文件时使用的是<gtk-4.0/gtk/gtk.h>这样的路径。这可能是问题所在。

尝试将#include <gtk-4.0/gtk/gtk.h>改为#include <gtk/gtk.h> ,因为在指定了正确的包含路径后,不需要在头文件包含中指定gtk版本。

编译器在查找头文件时,它将会在指定的include路径中查找,如果在你的环境中设置了正确的include路径,编译器应该能够找到gtk/gtk.h。

如果修改头文件包含后问题仍未解决,你可能需要检查你的编译命令是否正确。在使用gcc或者g++编译时,你需要使用 -I 参数指定头文件搜索路径,以及 -l 参数指定链接的库。

在这种情况下,你应该使用类似于下面的命令:

gccpkg-config --cflags --libs gtk4-o your_program your_program.c


在这个命令中, pkg-config --cflags --libs gtk4 会自动添加正确的头文件和库路径。

希望这可以解决你的问题!
页: [1]
查看完整版本: msys2环境找不到gtk.h