[newbies] Кто-нибудь знает что значит "undefined reference to" при сборке?

Евгений Ростовцев real.altlinux.org на gmail.com
Ср Сен 19 07:06:01 MSK 2012


>  А как явно прописать линковку?

Она явно прописана. В том файле, фикс которого я прислал, строка 27:

pkg_check_modules(DEPS REQUIRED gtk+-3.0 gio-unix-2.0 gthread-2.0 gee-1.0)

Она устанавливает переменную DEPS_LIBRARIES в конкатенацию значений,
которые возвращают имена библиотек из файлов pkg-config всех указанных
пакетов. Потом эта переменная используется в строке 32-34:

set(LIBS
    ${DEPS_LIBRARIES}
)

Значение перменной можно просмотреть в файле BUILD/CMakeCache.txt, у
меня оно вот такое:

DEPS_LIBRARIES:INTERNAL=gtk-3;gdk-3;atk-1.0;pangocairo-1.0;gdk_pixbuf-2.0;cairo-gobject;pangoft2-1.0;pango-1.0;m;fontconfig;freetype;cairo;gio-2.0;gthread-2.0;rt;gee;gobject-2.0;glib-2.0

Что приведёт вот к такой строке линковки:

-lgtk-3 -lgdk-3 -latk-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0
-lcairo-gobject -lpangoft2-1.0 -lpango-1.0 -lm -lfontconfig -lfreetype
-lcairo -lgio-2.0 -lgthread-2.0 -lrt -lgee -lgobject-2.0 -lglib-2.0

-- 
REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ
ALT Linux team


Подробная информация о списке рассылки devel-newbies