Функция GDK не найдена
У меня есть программа GTK, в которой я вызываю функцию GDK. Я компилирую программу, используя:
gcc `pkg-config --cflags --libs gtk+-2.0 cairo glib-2.0` ...
и я включил
#include <gdk/gdk.h>
это дает мне ошибку:
undefined reference to `gdk_device_ungrab'
Кто-нибудь знает, что я делаю не так?
2 ответа
Решение
Вы компилируете и ссылаетесь на gtk 2.x и gdk_device_ungrab
доступно только начиная с версии 3.0.
Смотрите: http://developer.gnome.org/gdk3/3.4/GdkDevice.html
Вы должны поместить исходные или объектные файлы перед библиотеками в командной строке, то есть в начале, перед частью pkg-config.
Компоновщик добавляет объекты и библиотеки в порядке, указанном в командной строке; если библиотека gdk указана перед вашим исходным файлом, компоновщик не знает, что ваш код нуждается в libray, пока не станет слишком поздно.