1

h 大家好。在我的 Linux 机器上,我使用 Glade 3 生成一个 XML 文件。我成功地将 XML 文件嵌入到程序中,并使用以下命令编译了 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 文件。我究竟做错了什么?

4

3 回答 3

1

这与 glade XML 文件无关:gcc 参数顺序在使用 mingw 构建时很重要。

于 2012-04-22T17:09:30.007 回答
1

我添加了一篇文章如何为原生窗口(而不是 X 窗口)编译 gtk+ 应用程序?它描述了为 Windows 本地编译所需的确切步骤。

于 2013-09-14T09:11:00.410 回答
0

pkg-config输出只告诉你它找到了 .pc 文件。您需要确保所需的所有头文件和库都确实存在。请添加您也遇到的错误示例。

于 2012-04-17T09:12:06.790 回答