in reply to Re: Unable to install Tk module for Strawberry Perl
in thread Unable to install Tk module for Strawberry Perl

Hopefully I'll get a chance to look into the issue I had 5.38.

The solution posted at https://github.com/eserte/perl-tk/issues/92 was to replace typedef unsigned long XID in pTk/mTk/xlib/X11/X.h with typedef unsigned long long XID.
This change has already been made to the Tk source available from the github repo at https://github.com/eserte/perl-tk.

Cheers,
Rob

Replies are listed 'Best First'.
Re^3: Unable to install Tk module for Strawberry Perl
by Anonymous Monk on Apr 14, 2024 at 05:45 UTC
    This doesn't help me install Tk under Strawberry Perl 5.38.2. Issuing the command cpan Tk or any other variation thereof, cranks through the usual thousands of lines of incomprehensibility, including some red errors early on, maybe on something named "pmop" or something like that... But the real point of failure is this incomprehensible C compilation error:
    gcc -c -I. -I./pTk/mTk/xlib -I.. -I.. -I../pTk/mTk/xlib -I. -Ibitmaps + -I.. -I../pTk/mTk/xlib -DWIN32 -DWIN64 -DPERL_TEXTMODE_SCRIPTS -DMUL +TIPLICITY -DPERL_IMPLICIT_SYS -DUSE_PERLIO -D__USE_MINGW_ANSI_STDIO - +fwrapv -fno-strict-aliasing -mms-bitfields -DPERLDLL -Os -falign-func +tions -falign-jumps -falign-labels -falign-loops -freorder-blocks -fr +eorder-blocks-algorithm=stc -freorder-blocks-and-partition -DVERSIO +N=\"804.036\" -DXS_VERSION=\"804.036\" "-IC:\STRAWB~1\perl\lib\CORE" + imgBMP.c In file included from ../pTk/mTk/xlib/X11/Xlib.h:31, from tkWinPort.h:19, from tkPort.h:32, from tk.h:87, from imgBMP.c:11: ../pTk/mTk/xlib/X11/X.h:182:34: error: expected identifier or '(' befo +re numeric constant 182 | #define ControlMask (1<<2) | ^
    This is very strange as this is the third successive line of pretty much the same format: "#define _____ (1<<_)" , but the first two lines are apparently acceptable as they stand. The only outstanding difference in this line is that "ControlMask" as a string is long enough that it moves the definition "(1<<2)" to the next tab stop, as compared to the two preceding lines. I also can't reproduce the error in a simple test program that simply does a "#include tk.h".