我有一個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