Невозможно построить Perl модуль XString на Windows - PullRequest
1 голос
/ 03 августа 2020

Я пытаюсь собрать этот код на машине Windows Server 2019 Datacenter. У меня Visual Studio 2019 с установленным набором инструментов Microsoft c ++, g cc версия 9.2.0, установленная через MinGW. Вот результаты журнала, когда я запустил nmake all:

Microsoft (R) Program Maintenance Utility Version 14.26.28806.0
Copyright (C) Microsoft Corporation.  All rights reserved.

cp lib/XString.pm blib\lib\XString.pm
Running Mkbootstrap for XString ()
        "C:\Perl64\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 "XString.bs"
        "C:\Perl64\bin\perl.exe" -MExtUtils::Command::MM -e cp_nonempty -- XString.bs blib\arch\auto\XString\XString.bs 644
        "C:\Perl64\bin\perl.exe" "C:\Perl64\lib\ExtUtils\xsubpp"  -typemap C:\Perl64\lib\ExtUtils\typemap  XString.xs > XString.xsc
Please specify prototyping behavior for XString.xs (see perlxs manual)
        "C:\Perl64\bin\perl.exe" -MExtUtils::Command -e mv -- XString.xsc XString.c
        cl -c    -nologo -GF -W3 -MD -Zi -DNDEBUG -Ox -GL -fp:precise -DWIN32 -D_CONSOLE -DNO_STRICT -DWIN64 -DCONSERVATIVE -DPERL_TEXTMODE_SCRIPTS -DUSE_SITECUSTOMIZE -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -MD -Zi -DNDEBUG -Ox -GL -fp:precise    -DVERSION=\"0.003\"  -DXS_VERSION=\"0.003\"  "-IC:\Perl64\lib\CORE"   -FdXString.pdb XString.c
XString.c
C:\Perl64\lib\CORE\win32.h(250): warning C4005: 'isnan': macro redefinition
C:\Program Files (x86)\Windows Kits\10\include\10.0.18362.0\ucrt\corecrt_math.h(276): note: see previous definition of 'isnan'
        "C:\Perl64\bin\perl.exe" -MExtUtils::Mksymlists  -e "Mksymlists('NAME'=>\"XString\", 'DLBASE' => 'XString', 'DL_FUNCS' => {  }, 'FUNCLIST' => [], 'IMPORTS' => {  }, 'DL_VARS' => []);"
        link -out:blib\arch\auto\XString\XString.dll -dll -nologo -nodefaultlib -debug -opt:ref,icf -ltcg  -libpath:"C:\Perl64\lib\CORE"  -machine:AMD64 XString.obj   "C:\Perl64\lib\CORE\perl514.lib" oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib  comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib  netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib  version.lib odbc32.lib odbccp32.lib comctl32.lib  msvcrt.lib -def:XString.def
   Creating library blib\arch\auto\XString\XString.lib and object blib\arch\auto\XString\XString.exp
XString.obj : error LNK2001: unresolved external symbol strchr
msvcrt.lib(dll_dllmain.obj) : error LNK2001: unresolved external symbol _initterm
msvcrt.lib(dll_dllmain.obj) : error LNK2001: unresolved external symbol _initterm_e
msvcrt.lib(dll_dllmain.obj) : error LNK2001: unresolved external symbol __C_specific_handler
msvcrt.lib(utility.obj) : error LNK2001: unresolved external symbol __C_specific_handler
msvcrt.lib(tncleanup.obj) : error LNK2001: unresolved external symbol __std_type_info_destroy_listmsvcrt.lib(utility.obj) : error LNK2001: unresolved external symbol _seh_filter_dll
msvcrt.lib(utility.obj) : error LNK2001: unresolved external symbol _configure_narrow_argv
msvcrt.lib(utility.obj) : error LNK2001: unresolved external symbol _initialize_narrow_environmentmsvcrt.lib(utility.obj) : error LNK2001: unresolved external symbol _initialize_onexit_table
msvcrt.lib(utility.obj) : error LNK2001: unresolved external symbol _register_onexit_function
msvcrt.lib(utility.obj) : error LNK2001: unresolved external symbol _execute_onexit_table
msvcrt.lib(utility.obj) : error LNK2001: unresolved external symbol _crt_atexit
msvcrt.lib(utility.obj) : error LNK2001: unresolved external symbol _crt_at_quick_exit
msvcrt.lib(utility.obj) : error LNK2001: unresolved external symbol _cexit
msvcrt.lib(utility_desktop.obj) : error LNK2001: unresolved external symbol terminate
msvcrt.lib(utility_desktop.obj) : error LNK2001: unresolved external symbol __current_exception
msvcrt.lib(utility_desktop.obj) : error LNK2001: unresolved external symbol __current_exception_context
msvcrt.lib(utility_desktop.obj) : error LNK2001: unresolved external symbol memset
blib\arch\auto\XString\XString.dll : fatal error LNK1120: 18 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.26.28801\bin\HostX86\x64\link.EXE"' : return code '0x460'
Stop.

Я попытался добавить заголовок string.h в код, но безрезультатно. У меня есть проблема с github по этому поводу: https://github.com/atoomic/XString/issues/4.

...