Почему perl2exe жалуется на "неразрешенный символ: Perl_Gthr_key_ptr"?
В Perl, что означает эта ошибка?
Unresolved symbol: Perl_Gthr_key_ptr
Я получаю эту ошибку при преобразовании файла Perl в двоичный файл с помощью perl2exe на компьютере HP-UX PA-RISC.
/usr/lib/dld.sl: Unresolved symbol: Perl_Gthr_key_ptr (code) from /tmp/p2xtmp-9979/Cwd.sl IOT trap (core dumped)
2 ответа
Вдобавок ко всему, это похоже на непоточный Perl, пытающийся загрузить модули, скомпилированные для многопоточного Perl.
РЕДАКТИРОВАТЬ: чтобы уточнить, вы можете скомпилировать Perl с поддержкой потоков (многопоточный Perl) или без поддержки потоков (непоточный Perl). Если модуль создан для использования с потоками и загружается perl без поддержки потоков, он обычно выдает вышеуказанную ошибку.
Чтобы проверить поддержку потоков в Perl, просто найдите строку "thread" в выводе perl -V
:
perl -V | grep thread
Загружается модуль Perl, который не совместим двоично с вашей базовой установкой Perl. Это может быть вызвано, среди прочего, наличием ранее установленных модулей с оболочкой CPAN и последующим использованием диспетчера пакетов вашей ОС для обновления Perl под ним. Эта ситуация может быть решена путем
$ cpan -r
который найдет все ваши CPAN-модули с двоичным компонентом и перекомпилирует эти двоичные компоненты в соответствии с вашей текущей установкой Perl.