in reply to Tcl for Strawberry Perl on Windows 64bit

Its simple, just like all of them, install the prerequisites (Tcl like http://downloads.activestate.com/ActiveTcl/releases/8.6.4.1/ ), tell Makefile.PL where to find it

  • Comment on Re: Tcl for Strawberry Perl on Windows 64bit

Replies are listed 'Best First'.
Re^2: Tcl for Strawberry Perl on Windows 64bit
by Anonymous Monk on Jul 21, 2015 at 05:06 UTC
    not quite so simple. This is the result from attempting to build Tcl using lateset Strawberry Perl (perl 5, version 22, subversion 0 (v5.22.0) built for MSWin32-x64-multi-thread) and AS TCl (ActiveState ActiveTcl 8.6.4.1.299124 distribution for Win32/x64)

    result from perl Makefile.PL

    tclsh=C:/Tcl/bin/tclsh.exe tclConfig.sh=C:/Tcl/lib/tclConfig.sh tcl_library=C:/Tcl/lib/tcl8.6 tcl_version=8.6 LIBS = -LC:/Tcl/lib -ltcl86 INC = -IC:/Tcl/include DEFINE = Checking if your kit is complete... Looks good Generating a dmake-style Makefile Writing Makefile for Tcl Writing MYMETA.yml and MYMETA.json
    which looks right. It found the lib, inc, version, tclsh etc. So when I attempt to make (or rather dmake)

    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" "C:\Strawberry\perl\lib\ExtUtils\xsu +bpp" -typemap "C:\STRAWB~1\perl\lib\ExtUtils\typemap" -typemap "type +map" Tcl.xs > Tcl.xsc && "C:\Strawberry\perl\bin\perl.exe" -MExtUtil +s::Command -e mv -- Tcl.xsc Tcl.c Please specify prototyping behavior for Tcl.xs (see perlxs manual) gcc -c -IC:/Tcl/include -s -O2 -DWIN32 -DWIN64 -DCONSERVATIVE +-DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS - +fwrapv -fno-strict-aliasing -mms-bitfields -s -O2 -DVERSION=\"1. +02\" -DXS_VERSION=\"1.02\" "-IC:\STRAWB~1\perl\lib\CORE" Tcl.c "C:\Strawberry\perl\bin\perl.exe" -MExtUtils::Mksymlists \ -e "Mksymlists('NAME'=>\"Tcl\", 'DLBASE' => 'Tcl', 'DL_FUNCS' => +{ }, 'FUNCLIST' => [], 'IMPORTS' => { }, 'DL_VARS' => []);" dlltool --def Tcl.def --output-exp dll.exp g++ -o blib\arch\auto\Tcl\Tcl.xs.dll -Wl,--base-file -Wl,dll.base -mdl +l -s -L"C:\STRAWB~1\perl\lib\CORE" -L"C:\STRAWB~1\c\lib" Tcl.o "C:\ +STRAWB~1\perl\lib\CORE\libperl522.a" "C:\Tcl\lib\tcl86.lib" "C:\STRAW +B~1\c\x86_64-w64-mingw32\lib\libmoldname.a" "C:\STRAWB~1\c\x86_64-w64 +-mingw32\lib\libkernel32.a" "C:\STRAWB~1\c\x86_64-w64-mingw32\lib\lib +user32.a" "C:\STRAWB~1\c\x86_64-w64-mingw32\lib\libgdi32.a" "C:\STRAW +B~1\c\x86_64-w64-mingw32\lib\libwinspool.a" "C:\STRAWB~1\c\x86_64-w64 +-mingw32\lib\libcomdlg32.a" "C:\STRAWB~1\c\x86_64-w64-mingw32\lib\lib +advapi32.a" "C:\STRAWB~1\c\x86_64-w64-mingw32\lib\libshell32.a" "C:\S +TRAWB~1\c\x86_64-w 64-mingw32\lib\libole32.a" "C:\STRAWB~1\c\x86_64-w64-mingw32\lib\libol +eaut32.a" "C:\STRAWB~1\c\x86_64-w64-mingw32\lib\libnetapi32.a" "C:\ST +RAWB~1\c\x86_64-w64-mingw32\lib\libuuid.a" "C:\STRAWB~1\c\x86_64-w64- +mingw32\lib\libws2_32.a" "C:\STRAWB~1\c\x86_64-w64-mingw32\lib\libmpr +.a" "C:\STRAWB~1\c\x86_64-w64-mingw32\lib\libwinmm.a" "C:\STRAWB~1\c\ +x86_64-w64-mingw32\lib\libversion.a" "C:\STRAWB~1\c\x86_64-w64-mingw3 +2\lib\libodbc32.a" "C:\STRAWB~1\c\x86_64-w64-mingw32\lib\libodbccp32. +a" "C:\STRAWB~1\c\x86_64-w64-mingw32\lib\libcomctl32.a" dll.exp C:\Tcl\lib\tcl86.lib: error adding symbols: File format not recognized collect2.exe: error: ld returned 1 exit status dmake: Error code 129, while making 'blib\arch\auto\Tcl\Tcl.xs.dll'

    Any ideas? Its clearly struggling with the tcl86.lib format...

      Any ideas? Its clearly struggling with the tcl86.lib format

      Is tcl86.lib an import lib (stub lib) for a dll ? ... or is it a static library ?
      If it's an import lib, then you can use Strawberry to build a mingw import lib for that dll.
      (Also, just check that it's an x64 library that you've got.)

      Cheers,
      Rob

      not quite so simple.

      It still looks very very simple :)

      Ok, this is simpler, portable activeperl, it comes with Tcl/Tkx http://downloads.activestate.com/ActivePerl/releases/5.20.2.2001/ActivePerl-5.20.2.2001-MSWin32-x64-298913.zip

      This is the result from attempting to build Tcl using lateset Strawberry Perl (perl 5, version 22, subversion 0 (v5.22.0) built for MSWin32-x64-multi-thread) and AS TCl (ActiveState ActiveTcl 8.6.4.1.299124 distribution for Win32/x64)

      result from perl Makefile.PL C:\Tcl\lib\tcl86.lib: error adding symbols: File format not recognized

      Any ideas? Its clearly struggling with the tcl86.lib format...

      That is simple, examine the file

      Step one, get diagnostics

      file "C:\Tcl\lib\tcl86.lib" sha1sum "C:\Tcl\lib\tcl86.lib" objdump -p "C:\Tcl\lib\tcl86.lib" |head

        I'm not sure where the file command comes from. Anyway the size/datetime....

        06/06/2015 06:17 181,880 tcl86.lib

        I downloaded an sha1sum.exe, here's the result

        5b2c87ccbc0838d7c9687f15f5ab6a33f7f77837 C:\Tcl\lib\tcl86.lib

        and the results of objdumo

        C:\Tcl\lib>objdump -p "C:\Tcl\lib\tcl86.lib" |head In archive C:\Tcl\lib\tcl86.lib: tcl86.dll: file format pe-x86-64 Characteristics 0x0 Time/Date Sat Jun 06 05:37:55 2015 Magic 0000 MajorLinkerVersion 0 MinorLinkerVersion 0

        I appreciate your help