我有一个gtk程序,我正在调用一个gdk函数。我编译使用的程序:没有找到GDK函数
gcc `pkg-config --cflags --libs gtk+-2.0 cairo glib-2.0` ...
,我已经包括
#include <gdk/gdk.h>
它给我的错误:
undefined reference to `gdk_device_ungrab'
有谁知道我做错了吗?
我有一个gtk程序,我正在调用一个gdk函数。我编译使用的程序:没有找到GDK函数
gcc `pkg-config --cflags --libs gtk+-2.0 cairo glib-2.0` ...
,我已经包括
#include <gdk/gdk.h>
它给我的错误:
undefined reference to `gdk_device_ungrab'
有谁知道我做错了吗?
您正在编译并链接到gtk 2.x和gdk_device_ungrab
只能从gtk 3.0开始。
参见: http://developer.gnome.org/gdk3/3.4/GdkDevice.html#gdk-device-ungrab
您必须在命令行中将源文件或目标文件放在之前,即在pkg-config部分之前的开始处。
链接器按照它们在命令行中指定的顺序添加对象和库;如果gdk库在您的源文件之前列出,链接器不知道您的代码需要libray,直到它为时已晚。
我不认为这很重要,因为它找到了glib和gtk函数。 – mihajlv 2012-07-13 10:27:58
如果你有oportunitz使用'pkgconfig'我建议这样做,因为它resolvs很多库和包括您的(具体问题的解决方案的独立的)悲伤 – drahnr 2012-07-14 10:25:15