CCLD gio-querymodules
/opt/arm-2009q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld: warning: libgthread-2.0.so.0,
needed by ../gobject/.libs/libgobject-2.0.so, not found (try using -rpath or -rpath-link)
./.libs/libgio-2.0.so: undefined reference to `inflateReset'
./.libs/libgio-2.0.so: undefined reference to `inflateEnd'
./.libs/libgio-2.0.so: undefined reference to `inflateGetHeader'
./.libs/libgio-2.0.so: undefined reference to `deflate'
./.libs/libgio-2.0.so: undefined reference to `deflateInit_'
./.libs/libgio-2.0.so: undefined reference to `inflateInit2_'
./.libs/libgio-2.0.so: undefined reference to `inflate'
./.libs/libgio-2.0.so: undefined reference to `deflateSetHeader'
./.libs/libgio-2.0.so: undefined reference to `deflateEnd'
./.libs/libgio-2.0.so: undefined reference to `deflateReset'
./.libs/libgio-2.0.so: undefined reference to `inflateInit_'
./.libs/libgio-2.0.so: undefined reference to `deflateInit2_'
collect2: ld returned 1 exit status
make[5]: *** [gio-querymodules] Error 1
Что странно, так как libgthread-2.0.so.0 входит в состав glib и уже собрана.
Как бы решить эту проблему?
Спасибо.
Я не имею большого опыта работы с pkg-config, но насколько мне извесно этот механизм используется для сборки кода зависимого от уже установленного. gthread-2.0.pc
Так как никой компонент из собираемого glib ещё не установлен, то и pc-файлы ничем не помогут, так как в прописанных в них координатах ещё ничего нет.
И второй момоент - я же не собираюсь устанавливать собранный пакет в своей системе, мне он нужен на другой машине.
Если Вас не затруднит, не могли бы Вы привести более расширенный пример использования pkg-config для моего случая?
Спасибо.
Будет разворачивать команды проходящие через make. Последние строки перед ошибкой типа libtool: link: давайте глянем
Я думаю, что pkg-config как раз и заставляет искать библиотеки не в вашей сборке, а системные.
`inflateReset' и прочее это потерялась zlib для arm-а.
Проблема решена - собрал все библиотеки с использованием --prefix=<целевая директория> и установил их через make install. Как последствие, чуток "загадилась" файловая система, ну да это легко решаемо.
Имеем только
-Wl,-rpath -Wl,/tmp/glib/lib
а должно быть при --prefix=/tmp/glib
... -rpath /tmp/glib/lib ... -Wl,-rpath -Wl,/<каталог сборки>/glib/.libs -Wl,-rpath -Wl,/<каталог сборки>/gthread/.libs ...
и прочее, соответственно Вы намутили с ./configure больше чем нужно и этим самым жестко отрубили поиск библиотек в каталогах сборки.