使用MinGW无法在Windows上编译GTK +程序

h大家好。 在我的Linux机器上,我使用Glade 3来生成一个XML文件。 我成功地将XML文件embedded到程序中,并使用以下命令编译GTK +程序:

gcc -Wall -g `pkg-config --cflags --libs gtk+-2.0` prog.c 

该程序完全按照我想要的方式工作。 但是,在Windows上使用Cygwin,我不能得到这个编译。 我已经安装了MinGW和Windows GTK + 2.0包。 他们都在Z驱动器的根源。 pkg-config工作正常,它向GCC发送了几个编译器和链接器选项。 我没有得到任何“文件不存在”的错误,我有我的$ PATH设置。 我收到了一打“未定义的参考”错误。 每次我调用一个GTK函数时都会出错。 这是pkg-config输出的内容:

 -mms-bitfields -IZ:/GTK+/include/gtk-2.0 -IZ:/GTK+/lib/gtk-2.0/include -IZ:/GTK+/include/atk-1.0 -IZ:/GTK+/include/cairo -IZ:/GTK+/include/pango-1.0 -IZ:/GTK+/include/glib-2.0 -IZ:/GTK+/lib/glib-2.0/include -IZ:/GTK+/include/libpng12 -LZ:/GTK+/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lintl 

我还应该提到,我能够使用Windows版本的Glade 3生成相同的XML文件。 我究竟做错了什么?

我已经添加了一篇文章, 如何编译本机窗口(而不是X窗口)gtk +应用程序? 它描述了你需要为Windows自然编译的确切步骤。

这与glade XML文件无关:在用mingw构建时, gcc的参数顺序非常重要。

pkg-config输出只会告诉你它找到了.pc文件。 你需要确保所有需要的头文件和库都在那里。 请添加您获得的错误的样本。