Fix XSTools

Материал из RO-fan
Перейти к: навигация, поиск

Симптомы

Если в unix-системах (например BSD/Linux/OSX) обновить Perl или библиотеки, от которых зависит OpenKore, то библиотека XSTools перестаёт работать.

Пример сообщения об ошибке:

~/path/to/openkore$ perl ./openkore.pl
/usr/bin/perl: symbol lookup error: /path/to/openkore/src/auto/XSTools.so: undefined symbol Perl_Gther_key_ptr


Лечение

Быстро

Переходим в каталог с openkore:

$cd /path/to/openkore

Удаляем результаты предыдущей компиляции и компилируем всё заново:

/path/to/openkore$ make clean all

Подробно

Необходимо заново скомпилировать библиотеку XSTools, для этого нужно удалить библиотеку XSTools и запустить openkore.pl.

Переходим в папку с библиотекой XSTools:

$ cd /path/to/openkore
/path/to/openkore$ cd src/auto/XSTools

Проверяем, что в папке действительно есть библиотека libXSTools.so и ссылка на неё:

/path/to/openkore/src/auto/XSTools$ ls -la
...
lrwxrwxrwx  1 user user     13 Feb  2 20:44 XSTools.so -> libXSTools.so
-rwxr-xr-x  1 user user 379777 Feb  2 20:44 libXSTools.so
...

На всякий случай не удаляем, а переименовываем оба файла. Вдруг перекомпиляция не поможет?

/path/to/openkore/src/auto/XSTools$ mv XSTools.so XSTools.so.bak
/path/to/openkore/src/auto/XSTools$ mv libXSTools.so libXSTools.so.bak

Теперь, когда обоих файлов нет, возвращаемся в корневую папку OpenKore и запускаем openkore.pl. Openkore.pl скомпилирует пропавшую библиотеку и таким образом она подстроится под изменившееся окружение.

/path/to/openkore/src/auto/XSTools$ cd ../../..
/path/to/openkore$ perl ./openkore.pl

После этого всё должно нормально заработать.