У меня Ubuntu 14.04 32 битная. Я пытаюсь скомпилировать приложение из исходного кода. Это дает мне сообщение об ошибке во время связывания в процессе make
, хотя ./autogen.sh
и ./configure
прошли без ошибок. Я получил эту ошибку undefined reference to g_variant_parse_error_quark
Я прочитал, что эта функция g_variant_parse_error_quark
добавлена в glib2 в 2.39. Я проверил установленные пакеты и обнаружил, что в моей системе версия libglib 2.40.0. Однако
pkg-config --modversion glib-2.0
сообщает 2.38.2
Похоже, у меня установлено как минимум два разных glib2. Я мог вручную установить glib2 из источника в прошлом.
Как я могу исправить эту проблему и позволить моей системе использовать правильную последнюю библиотеку?
Как я предположил, это произошло от конфликта нескольких библиотек. Когда я работаю
echo $PKG_CONFIG_PATH
это возвратило пустую строку
Затем я искал
locate glib-2.0.pc
и я добрался
/usr/lib/i386-linux-gnu/pkgconfig/glib-2.0.pc
/usr/lib/i386-linux-gnu/pkgconfig/spice-client-glib-2.0.pc
/usr/local/lib/pkgconfig/glib-2.0.pc
Я также работаю
pkg-config --debug --modversion glib-2.0
найти, какие каталоги разыскивались
Я заглянул glib-2.0.pc
файлы и проверенный номера версий.
Я определил местоположение корректного glib-2.0.pc
файл
затем я работаю
export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig/
после затем ./autogen.sh
и make
пошел гладко