Perl не может загрузить XS.xs.dll и отсутствует perl528.dll - PullRequest
0 голосов
/ 28 июня 2019

Когда я запускаю следующую команду

D:\05_project>perl xml_export.pl  xml_20190626.xml

, она создает XML-файлы из MariaDB.Работает очень хорошо последние 6 месяцев.Я использовал версию Perl 5.28 на Windows 7 / 64bit.

На прошлой неделе я удалил Perl 5.28 и установил Perl 5.30 .Многие Perl-скрипты работают без проблем, но xml_export.pl ломается после запуска.Первое, что нужно, это выдать системную ошибку:

enter image description here

Затем на терминал было выведено следующее сообщение:

Can't load 'C:\PerlLib\lib\perl5/MSWin32-x64-multi-thread/auto/Date/Calc/XS/XS.xs.dll' 
for module Date::Calc::XS: load_file:
The specified module could not befound at 
C:/Program2/Strawberry/perl/lib/DynaLoader.pm line 193.
       at C:\PerlLib\lib\perl5/Date/Calc.pm line 26.

Compilation failed in require at C:\PerlLib\lib\perl5/Date/Calc.pm line 26.
BEGIN failed--compilation aborted at C:\PerlLib\lib\perl5/Date/Calc.pm line 43.
Compilation failed in require at xml_export.pl line 67.
BEGIN failed--compilation aborted at xml_export.pl line 67.

Мне интересно, что случилось и как я могу решить эту проблему.Пакет Date :: Calc установлен.Perl установлен на диске C, и я запускаю сценарии perl с дисков c и d.Как уже упоминалось, у меня не было проблем, пока я не установил новую версию Perl.Я переустановил Perl 5.30, но проблема сохраняется.Есть идеи?

Обновление 1:

Если я закомментирую пакет Date::Calc в xml_export.pl

# -- date computations                   # line 66 
# use Date::Calc qw(:all);               # line 67 

Скрипт работает сейчас,Итак, остается вопрос, почему он не работает при добавлении этого пакета и почему отображается эта странная системная ошибка (отсутствует perl528.dll).

1 Ответ

3 голосов
/ 28 июня 2019

Date :: Calc имеет компонент XS Date :: Calc :: XS , т. Е. Ему нужно скомпилировать некоторый C-код. Когда вы обновляете Perl, вам нужно перекомпилировать все модули XS, чтобы они работали с новой версией Perl. Установленный пакет связан с библиотекой, которая больше не существует (об этом говорит окно «Системная ошибка»).

Дата переустановки :: Calc должен решить эту проблему, но убедитесь, что все остальные модули XS также обновлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...