Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Install module Tcl Strawberryperl

by Anonymous Monk
on May 14, 2018 at 17:44 UTC ( #1214483=perlquestion: print w/replies, xml ) Need Help??

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hello

I am on Windows 10 (64bit) using Perl v5.24.1 and try to install the module Tcl, which fails. I have tried with several Tcl versions (for example ActiveTcl). Tcl is in the path and at the beginning of the installation everything seems fine

Configuring V/VK/VKON/Tcl-1.05.tar.gz with Makefile.PL tclsh=C:/ActiveTcl/bin/tclsh.exe tclConfig.sh=C:/ActiveTcl/lib/tclConfig.sh tcl_library=C:/ActiveTcl/lib/tcl8.6 tcl_version=8.6 LIBS = -LC:/ActiveTcl/lib -ltcl86 INC = -IC:/ActiveTcl/include DEFINE = Checking if your kit is complete... Looks good Warning (mostly harmless): No library found for -ltcl86 Generating a dmake-style Makefile Writing Makefile for Tcl Writing MYMETA.yml and MYMETA.json VKON/Tcl-1.05.tar.gz C:\Strawberry\perl\bin\perl.exe Makefile.PL -- OK

Then problems start, but I cannot understand what the problem is and what I have to do

Running make for V/VK/VKON/Tcl-1.05.tar.gz cp Tcl.pm blib\lib\Tcl.pm Running Mkbootstrap for Tcl () "C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command -e chmod -- 644 +"Tcl.bs" "C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command::MM -e cp_nonemp +ty -- Tcl.bs blib\arch\auto\Tcl\Tcl.bs 644 "C:\Strawberry\perl\bin\perl.exe" "C:\Strawberry\perl\lib\ExtUtils\xsu +bpp" -typemap C:\STRAWB~1\perl\lib\ExtUtils\typemap -typemap C:\STRA +WB~1\cpan\build\Tcl-1.05-4\typemap Tcl.xs > Tcl.xsc Please specify prototyping behavior for Tcl.xs (see perlxs manual) "C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Command -e mv -- Tcl.xsc + Tcl.c gcc -c -IC:/ActiveTcl/include -s -O2 -DWIN32 -DPERL_TEXTMODE_SCRIPTS + -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -fwrapv -fno-strict-alia +sing -mms-bitfields -s -O2 -DVERSION=\"1.05\" -DXS_VERSION=\"1 +.05\" "-IC:\STRAWB~1\perl\lib\CORE" Tcl.c Tcl.xs: In function 'XS_Tcl_CreateCommand': Tcl.xs:1522:41: warning: cast to pointer from integer of different siz +e [-Wint-to-pointer-cast] Tcl_CreateCommand(interp, cmdName, (Tcl_CmdProc *) SvIV(cmdProc) +, ^ "C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Mksymlists \ -e "Mksymlists('NAME'=>\"Tcl\", 'DLBASE' => 'Tcl', 'DL_FUNCS' => +{ }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" g++ Tcl.def -o blib\arch\auto\Tcl\Tcl.xs.dll -mdll -s -L"C:\STRAWB~1\p +erl\lib\CORE" -L"C:\STRAWB~1\c\lib" Tcl.o "C:\STRAWB~1\perl\lib\COR +E\libperl524.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libmoldname.a" "C +:\STRAWB~1\c\i686-w64-mingw32\lib\libkernel32.a" "C:\STRAWB~1\c\i686- +w64-mingw32\lib\libuser32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libg +di32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libwinspool.a" "C:\STRAWB +~1\c\i686-w64-mingw32\lib\libcomdlg32.a" "C:\STRAWB~1\c\i686-w64-ming +w32\lib\libadvapi32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libshell32 +.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libole32.a" "C:\STRAWB~1\c\i6 +86-w64-mingw32\lib\liboleaut32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib +\libnetapi32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libuuid.a" "C:\ST +RAWB~1\c\i686-w64-mingw32\lib\libws2_32.a" "C:\STRAWB~1\c\i686-w64-mi +ngw32\lib\libmpr.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libwinmm.a" " +C:\STRAWB~1\c\i686-w64-mingw32\lib\libversion.a" "C:\STRAWB~1\c\i686- +w64-mingw32\lib\libodbc32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libo +dbccp32.a" "C:\STRAWB~1\c\i686-w64-mingw32\lib\libcomctl32.a" -Wl,--e +nable-auto-image-base Tcl.o:Tcl.c:(.text+0x5d): undefined reference to `_imp__Tcl_GetStringF +romObj' Tcl.o:Tcl.c:(.text+0x165): undefined reference to `_imp__Tcl_GetString +FromObj' Tcl.o:Tcl.c:(.text+0x1dd): undefined reference to `_imp__Tcl_ListObjGe +tElements' Tcl.o:Tcl.c:(.text+0x324): undefined reference to `_imp__Tcl_GetByteAr +rayFromObj' Tcl.o:Tcl.c:(.text+0x529): undefined reference to `_imp__Tcl_NewDouble +Obj' Tcl.o:Tcl.c:(.text+0x567): undefined reference to `_imp__Tcl_NewString +Obj' Tcl.o:Tcl.c:(.text+0x5d4): undefined reference to `_imp__Tcl_NewByteAr +rayObj' Tcl.o:Tcl.c:(.text+0x620): undefined reference to `_imp__Tcl_NewString +Obj' Tcl.o:Tcl.c:(.text+0x683): undefined reference to `_imp__Tcl_NewListOb +j' Tcl.o:Tcl.c:(.text+0x6e4): undefined reference to `_imp__Tcl_ListObjAp +pendElement' Tcl.o:Tcl.c:(.text+0x70d): undefined reference to `_imp__Tcl_NewObj' Tcl.o:Tcl.c:(.text+0x737): undefined reference to `_imp__Tcl_NewIntObj +' Tcl.o:Tcl.c:(.text+0x832): undefined reference to `_imp__Tcl_NewByteAr +rayObj' Tcl.o:Tcl.c:(.text+0x899): undefined reference to `_imp__Tcl_WrongNumA +rgs' Tcl.o:Tcl.c:(.text+0x99d): undefined reference to `_imp__Tcl_SetResult +' Tcl.o:Tcl.c:(.text+0xa36): undefined reference to `_imp__Tcl_SetObjRes +ult' Tcl.o:Tcl.c:(.text+0x10f9): undefined reference to `_imp__Tcl_SetResul +t' Tcl.o:Tcl.c:(.text+0x12f8): undefined reference to `_imp__Tcl_SetObjRe +sult' Tcl.o:Tcl.c:(.text+0x1a82): undefined reference to `_imp__Tcl_SetObjRe +sult' Tcl.o:Tcl.c:(.text+0x1bc4): undefined reference to `_imp__Tcl_GetObjRe +sult' Tcl.o:Tcl.c:(.text+0x1e01): undefined reference to `_imp__Tcl_SetVar2E +x' Tcl.o:Tcl.c:(.text+0x1f90): undefined reference to `_imp__Tcl_SetVar2E +x' Tcl.o:Tcl.c:(.text+0x2180): undefined reference to `_imp__Tcl_SetVar2E +x' Tcl.o:Tcl.c:(.text+0x2373): undefined reference to `_imp__Tcl_SetVar2E +x' Tcl.o:Tcl.c:(.text+0x25f5): undefined reference to `_imp__Tcl_GetVar2E +x' Tcl.o:Tcl.c:(.text+0x290f): undefined reference to `_imp__Tcl_GetVar2E +x' Tcl.o:Tcl.c:(.text+0x2ae8): undefined reference to `_imp__Tcl_GetVar2E +x' Tcl.o:Tcl.c:(.text+0x2be0): undefined reference to `_imp__Tcl_GetStrin +gFromObj' Tcl.o:Tcl.c:(.text+0x2c6e): undefined reference to `_imp__TclFreeObj' Tcl.o:Tcl.c:(.text+0x2ddb): undefined reference to `_imp__Tcl_UnsetVar +2' Tcl.o:Tcl.c:(.text+0x2fc6): undefined reference to `_imp__Tcl_UnsetVar +2' Tcl.o:Tcl.c:(.text+0x3166): undefined reference to `_imp__Tcl_SplitLis +t' Tcl.o:Tcl.c:(.text+0x31e5): undefined reference to `_imp__Tcl_Free' Tcl.o:Tcl.c:(.text+0x3398): undefined reference to `_imp__Tcl_DeleteCo +mmand' Tcl.o:Tcl.c:(.text+0x34d4): undefined reference to `_imp__Tcl_GetObjRe +sult' Tcl.o:Tcl.c:(.text+0x3519): undefined reference to `_imp__Tcl_AppendOb +jToObj' Tcl.o:Tcl.c:(.text+0x3605): undefined reference to `_imp__Tcl_ResetRes +ult' Tcl.o:Tcl.c:(.text+0x3723): undefined reference to `_imp__Tcl_AppendEl +ement' Tcl.o:Tcl.c:(.text+0x3917): undefined reference to `_imp__Tcl_CreateCo +mmand' Tcl.o:Tcl.c:(.text+0x3af1): undefined reference to `_imp__Tcl_CreateOb +jCommand' Tcl.o:Tcl.c:(.text+0x3d29): undefined reference to `_imp__Tcl_DoOneEve +nt' Tcl.o:Tcl.c:(.text+0x3e33): undefined reference to `_imp__Tcl_Init' Tcl.o:Tcl.c:(.text+0x3e86): undefined reference to `_imp__Tcl_GetStrin +gResult' Tcl.o:Tcl.c:(.text+0x3fa4): undefined reference to `_imp__Tcl_DeleteIn +terp' Tcl.o:Tcl.c:(.text+0x3ff2): undefined reference to `_imp__Tcl_Finalize +' Tcl.o:Tcl.c:(.text+0x40e3): undefined reference to `_imp__Tcl_DeleteIn +terp' Tcl.o:Tcl.c:(.text+0x42f5): undefined reference to `_imp__Tcl_CreateSl +ave' Tcl.o:Tcl.c:(.text+0x4457): undefined reference to `_imp__Tcl_CreateIn +terp' Tcl.o:Tcl.c:(.text+0x4484): undefined reference to `_imp__Tcl_CreateOb +jCommand' Tcl.o:Tcl.c:(.text+0x4516): undefined reference to `_imp__Tcl_GetObjRe +sult' Tcl.o:Tcl.c:(.text+0x456a): undefined reference to `_imp__Tcl_ListObjG +etElements' Tcl.o:Tcl.c:(.text+0x4773): undefined reference to `_imp__Tcl_ResetRes +ult' Tcl.o:Tcl.c:(.text+0x4796): undefined reference to `_imp__Tcl_EvalObjv +' Tcl.o:Tcl.c:(.text+0x47a3): undefined reference to `_imp__TclFreeObj' Tcl.o:Tcl.c:(.text+0x4884): undefined reference to `_imp__Tcl_GetStrin +gResult' Tcl.o:Tcl.c:(.text+0x49b2): undefined reference to `_imp__Tcl_GetComma +ndInfo' Tcl.o:Tcl.c:(.text+0x4a56): undefined reference to `_imp__Tcl_GetStrin +g' Tcl.o:Tcl.c:(.text+0x4a7d): undefined reference to `_imp__Tcl_ResetRes +ult' Tcl.o:Tcl.c:(.text+0x4aee): undefined reference to `_imp__TclFreeObj' Tcl.o:Tcl.c:(.text+0x4b81): undefined reference to `_imp__Tcl_NewStrin +gObj' Tcl.o:Tcl.c:(.text+0x4c08): undefined reference to `_imp__Tcl_ResetRes +ult' Tcl.o:Tcl.c:(.text+0x4c40): undefined reference to `_imp__TclFreeObj' Tcl.o:Tcl.c:(.text+0x4c83): undefined reference to `_imp__Tcl_ResetRes +ult' Tcl.o:Tcl.c:(.text+0x4d0f): undefined reference to `_imp__Tcl_GetStrin +gResult' Tcl.o:Tcl.c:(.text+0x4d2f): undefined reference to `_imp__Tcl_ResetRes +ult' Tcl.o:Tcl.c:(.text+0x4e6d): undefined reference to `_imp__Tcl_CommandC +omplete' Tcl.o:Tcl.c:(.text+0x4ecb): undefined reference to `_imp__Tcl_ResetRes +ult' Tcl.o:Tcl.c:(.text+0x4ed8): undefined reference to `_imp__Tcl_Eval' Tcl.o:Tcl.c:(.text+0x4eed): undefined reference to `_imp__Tcl_GetStrin +gResult' Tcl.o:Tcl.c:(.text+0x5058): undefined reference to `_imp__Tcl_ResetRes +ult' Tcl.o:Tcl.c:(.text+0x5069): undefined reference to `_imp__Tcl_EvalFile +' Tcl.o:Tcl.c:(.text+0x50e6): undefined reference to `_imp__Tcl_GetStrin +gResult' Tcl.o:Tcl.c:(.text+0x51e7): undefined reference to `_imp__Tcl_ResetRes +ult' Tcl.o:Tcl.c:(.text+0x5264): undefined reference to `_imp__Tcl_EvalEx' Tcl.o:Tcl.c:(.text+0x534e): undefined reference to `_imp__Tcl_GetStrin +gResult' Tcl.o:Tcl.c:(.text+0x56e6): undefined reference to `_imp__Tcl_FindExec +utable' Tcl.o:Tcl.c:(.text+0x5707): undefined reference to `_imp__Tcl_GetObjTy +pe' collect2.exe: error: ld returned 1 exit status dmake.exe: Error code 129, while making 'blib\arch\auto\Tcl\Tcl.xs.dl +l' VKON/Tcl-1.05.tar.gz C:\STRAWB~1\c\bin\dmake.exe -- NOT OK Stopping: 'install' failed for 'Tcl'.

I have read everything I could find online, found somebody having similar (even if not same) problems, but couldn't find any solution. Any help would be appreciated

Replies are listed 'Best First'.
Re: Install module Tcl Strawberryperl
by VinsWorldcom (Prior) on May 14, 2018 at 18:23 UTC

    It seems your errors are in the linking. See your "mostly harmless" warning - it actually is pretty harmful. You need libtcl86.a to be found somewhere on your system. Assuming it's not there, you can create it from tcl86.dll which I'm assuming must be there somewhere in your Tcl install directory. Example code below assumes it's in C:\ActiveTcl\bin\tcl86.dll

    cd C:\ActiveTcl\bin pexports tcl86.dll > tcl86.def dlltool --as-flags=--64 -m i386:x86-64 -k --output-lib libtcl86.a --in +put-def tcl86.def

    Then...

    perl Makefile.PL "LIBS=-LC:/ActiveTcl/bin -ltcl86" dmake

      Hi,

      ActiveTcl comes with a .lib

       C:\Tcl8.6/lib/tcl86.lib

      And  strawberry-perl-5.20.3.3-32bit-portable finds it no problem using ExtUtils::MakeMaker version 7.10 and 7.34 (latest).

      ... g++.exe -o blib\arch\auto\Tcl\Tcl.xs.dll -Wl,--base-file -Wl,dll.base +-mdll -s -L"C:\strawberry-perl-5.20.3.3-32bit-portable\perl\lib\CORE" -L"C:\strawberry-perl-5.20.3.3-32bit-portable\c\lib" Tcl.o "C:\strawberry-perl-5.20.3.3-32bit-portable\perl\lib\CORE\libperl520.a +" "C:\Tcl8.6\lib\tcl86.lib" ....

      I think OP should verify .lib file exists, then get latest ExtUtils::MakeMaker and try again

        Hi

        My ActiveTcl installation has a tcl86t.lib (note the t). I'll need to first understand ExtUtils::MakeMaker as I do not know this module and I am not quite sure what do I have to do with it.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1214483]
Approved by Corion
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (8)
As of 2021-03-08 16:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My favorite kind of desktop background is:











    Results (126 votes). Check out past polls.

    Notices?