Скомпилировать gedit 2.30.4 из git

#makefile #gnome #gedit

#makefile #gnome #gedit

Вопрос:

Я пытался скомпилировать gedit из git, но у меня не получается. В процессе создания я получаю:

 /usr/bin/ld: ./.libs/libgedit.a(eggsmclient-xsmp.o): undefined reference to symbol 'IceProcessMessages'
/usr/bin/ld: note: 'IceProcessMessages' is defined in DSO //usr/lib64/libICE.so.6 so try adding it to the linker command line
//usr/lib64/libICE.so.6: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[4]: *** [gedit] Error 1
make[4]: Leaving directory `/home/thom/gedit/gedit'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/thom/gedit/gedit'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/thom/gedit/gedit'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/thom/gedit'
make: *** [all] Error 2
  

Есть идеи? Спасибо.

Обновить:

На самом деле у меня его нет в том же каталоге. Я не знаю, что делать. Спасибо.

 # locate libICE
/usr/lib32/libICE.a
/usr/lib32/libICE.so
/usr/lib32/libICE.so.6
/usr/lib32/libICE.so.6.3.0
/usr/lib/libICE.a
/usr/lib/libICE.so
/usr/lib/libICE.so.6
/usr/lib/libICE.so.6.3.0
  

Комментарии:

1. не помню, каковы зависимости Gedit, но ошибка указывает на то, что отсутствует библиотека (libICE). Попробуйте проверить rpm.pbone.net для определения зависимостей Gedit

2. У меня действительно есть все зависимости… Этот файл является частью двух пакетов Debian ( packages. debian.org /… ). Я просто не знаю, что не так. Спасибо, Джон

3. хммм, если у вас есть все файлы, то, возможно, отсутствует какой-то переключатель (хотя никогда не пытался компилировать через git), например, ice или что-то в этом роде (скажем, компоновщик). Попробуйте поискать общие git-переключатели, которые связывают библиотеки (возможно, здесь ошибка, даже если библиотека есть, компилятор не найдет ее и / или не свяжет)

4. Я действительно не знаю, как это исправить, Джон, спасибо.

5. Я вижу, что был третий вариант, о котором я не знал … в любом случае, я полагаю, вы пытаетесь установить 64-разрядную версию Gedit (в сообщениях об ошибках указано lib64), возможно, вам следует получить 32-разрядную версию (или установить 64-разрядную версию библиотек). Тем не менее, даже после того, как у вас возникнут какие-то проблемы с path, попробуйте это: cyberciti.biz/faq/linux-setting-changing-library-path -> ВНИМАНИЕ! Изменение пути к библиотеке может привести к поломке уже установленного содержимого!

Ответ №1:

Посмотрите на следующие строки в configure.ac:

 if test "$os_osx" = "no" amp;amp;
   test "$os_win32" = "no"; then
    PKG_CHECK_MODULES(EGG_SMCLIENT, [
        sm >= 1.0.0
    ])
else
  

который должен начинаться со строки 319. Вы должны изменить:

         sm >= 1.0.0
  

Автор::

         sm >= 1.0.0 ice
  

Затем вам придется повторно запустить autogen.sh. Кроме того, вы можете сообщить об ошибке сборки и отправить исправление разработчикам gedit на https://bugzilla.gnome.org/browse.cgi?product=gedit 🙂