编译器找不到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;
}
如图
谢谢
首先,你已经确认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 参数指定链接的库。
在这种情况下,你应该使用类似于下面的命令:
gcc pkg-config --cflags --libs gtk4 -o your_program your_program.c
在这个命令中, pkg-config --cflags --libs gtk4 会自动添加正确的头文件和库路径。
希望这可以解决你的问题!
|