Функция 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, пока не станет слишком поздно.

Другие вопросы по тегам