Почему 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.

Другие вопросы по тегам