2

我有一个 gtk 程序,我在其中调用了一个 gdk 函数。我正在使用以下方法编译程序:

 gcc `pkg-config --cflags --libs gtk+-2.0 cairo glib-2.0` ...

我已经包括

#include <gdk/gdk.h>

它给了我错误:

undefined reference to `gdk_device_ungrab'

有谁知道我做错了什么?

4

2 回答 2

5

您正在针对 gtk 2.x 进行编译和链接,并且gdk_device_ungrab仅从 gtk 3.0 开始可用。

请参阅:http: //developer.gnome.org/gdk3/3.4/GdkDevice.html#gdk-device-ungrab

于 2012-07-13T10:31:29.397 回答
-1

您必须将源文件或目标文件放在命令行中的库之前,即在开头,在 pkg-config 部分之前。

链接器按照命令行中指定的顺序添加对象和库;如果 gdk 库列在您的源文件之前,则链接器不知道您的代码需要该库,直到为时已晚。

于 2012-07-13T10:25:34.480 回答