Из сообщения об ошибке компоновщика (пропущенные символы EnumProcessModules
и GetModuleFileNameExA
, которые являются функциями Windows API) ясно, что библиотека kernel32
отсутствует.Командная строка компоновщика, показанная в вашем обновлении, доказывает, что.
Обновление также показывает, что вы установили Strawberry Perl по пути, который содержит пробелы:
"C:\Dev\OpenSource Tools\Perl\strawberry-perl-5.28.1.1-64bit-portable\...
Использование путей с символами, которые имеют специальныезначения, такие как пробел (
), хеш (#
) и т. д., всегда вызывают проблемы.В данном конкретном случае это приводит к сборке, которая не может найти никаких библиотек:
...
Configuring FFI-Platypus-0.86 ... using system libffia via PkgConfigPP
Checking if your kit is complete...
Looks good
Warning (mostly harmless): No library found for -lpsapi
Warning (mostly harmless): No library found for -lmoldname
Warning (mostly harmless): No library found for -lkernel32
Warning (mostly harmless): No library found for -luser32
Warning (mostly harmless): No library found for -lgdi32
Warning (mostly harmless): No library found for -lwinspool
Warning (mostly harmless): No library found for -lcomdlg32
Warning (mostly harmless): No library found for -ladvapi32
Warning (mostly harmless): No library found for -lshell32
Warning (mostly harmless): No library found for -lole32
Warning (mostly harmless): No library found for -loleaut32
Warning (mostly harmless): No library found for -lnetapi32
Warning (mostly harmless): No library found for -luuid
Warning (mostly harmless): No library found for -lws2_32
Warning (mostly harmless): No library found for -lmpr
Warning (mostly harmless): No library found for -lwinmm
Warning (mostly harmless): No library found for -lversion
Warning (mostly harmless): No library found for -lodbc32
Warning (mostly harmless): No library found for -lodbccp32
Warning (mostly harmless): No library found for -lcomctl32
Generating a gmake-style Makefile
...
К сожалению, предупреждение не является "в основном безвредным", поскольку приводит к командной строке компоновщика без, например, -lkernel32
иотсюда ошибка компоновщика.
Решение : переименуйте каталоги в пути, чтобы удалить любые пробелы, например
C:\Dev\OpenSource_Tools\...
Исходный ответ Проект github для FFI :: Platypus показывает, что автор выполняет сборку CI для Strawberry Perl .Поэтому нужно проверить, следуя инструкциям сборки в этой сборке CI:
cpanm Capture::Tiny ExtUtils::MakeMaker ExtUtils::ParseXS IPC::Cmd
cpanm FFI::Platypus
Вы также можете сравнить свой журнал сборки с одной из сборок FFI :: Platypus CI в AppVeyor. чтобы обнаружить различия.