http://www.perlmonks.org?node_id=755878


in reply to SOLVED (mostly): Tk Package Fails to Make

Alright, I've been doing some sleuthing and here is what I deduced so far. When I run make Tk, a file regarding the TK make process gets created in my c:\strawberry\cpan\build directory. After digging through this newly created directory, I found about 6 files that use an #include tchar.h command if CYGWIN is not defined (which makes sense for me because I am not using Cygwin). I haven't bothered scouring for an #include stdio.h file but I am guessing its probably a similar case.

Anyways, during the make process, I am hanging on this command:

gcc -c -I.. -I../pTk/mTk/xlib -I. -Ibitmaps -I../pTk/mTk/xlib -s -O2 + -DWIN32 -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SY +S -fno-strict-aliasing -DPERL_MSVCRT_READFIX -DPERLDLL -s -O2 -DVERSION=\"804.028\" -DXS_VERSION=\"804.028\" "-IC +:\strawberry\perl\lib\CORE" -Wall -Wno-implicit-int -Wno-comment -W +no-unused -D__USE_FIXED_PROTOTYPES__ ClientWin.c

Doing some digging shows that this is a call to the gnu c compiler (though I didn't figure out what all the switches are). When called, this command throws this error

In file included from ..\pTk\mTk\xlib\../../../pTk/Lang.h:23, from ..\pTk\mTk\xlib\../../../pTk/tkIntXlibDecls.h:26 +, from ..\pTk\mTk\xlib\X11/Xlib.h:1206, from ClientWin.c:30: ..\pTk\mTk\xlib\../../../pTk/tcl.h:157: stdio.h: No such file or direc +tory In file included from ..\pTk\mTk\xlib\../../../pTk/tcl.h:2376, from ..\pTk\mTk\xlib\../../../pTk/Lang.h:23, from ..\pTk\mTk\xlib\../../../pTk/tkIntXlibDecls.h:26 +, from ..\pTk\mTk\xlib\X11/Xlib.h:1206, from ClientWin.c:30: ..\pTk\mTk\xlib\../../../pTk/tclPlatDecls.h:21: tchar.h: No such file +or directory dmake: Error code 129, while making 'ClientWin.o' dmake.EXE: Error code 255, while making 'pTk\libpTk.a' SREZIC/Tk-804.028.tar.gz C:\strawberry\c\bin\dmake.EXE -- NOT OK Failed during this command: SREZIC/Tk-804.028.tar.gz : make NO

..which seems to show various infiles getting included, but tchar.h and stdio.h not loading correctly for some reason. This seems strange to me because I do, indeed, have both tchar.h and stdio.h in the following directory:

c:\strawberry\include\

so the only conclusions I can come to are:

1) there is something wrong with my c compiler (which may very well be an issue because I never explicitly downloaded a c compiler, though I have installed CPAN modules before which makes me think that I do, indeed, have the Gnu c compiler functioning).

2) those two files tchar.h and stdio.h, are somehow corrupt.

3) there is a command somewhere looking for those two files at one particular path that is different from the path in which they reside.

4) I have completely misunderstood there errors being thrown at me and need to look for a different problem.

So, is there anyone else out there willing to help me try to figure out how to get Tk installed and running correctly?

Thanks to everyone so far for their help. I feel I am getting close.

Cheers.

Replies are listed 'Best First'.
Re^2: Tk Package Fails to Make
by Anonymous Monk on Apr 08, 2009 at 03:38 UTC
    Your installation of StrawberrryPerl is bolloxed. If you reinstall StrawberrryPerl, you should be able to install Tk without problems (I did it one minute ago). Tk is also available via PPM from many repositories, so you can install it via ppm as well.
Re^2: Tk Package Fails to Make
by syphilis (Archbishop) on Apr 08, 2009 at 04:49 UTC
    I do, indeed, have both tchar.h and stdio.h in the following directory:
    c:\strawberry\include\


    They would normally be in c:\strawberry\c\include.
    Are they *really* in c:\strawberry\include\ ?
    What does gcc -v output ?

    It really does look like your installation has been screwed up, as already suggested.

    Cheers,
    Rob
      *facepalm*

      They are, indeed, in C:\strawberry\c\include, not the original one I posted.

      So is my strawberry distribution still screwed or just my ability to successfully copy paths?

      Thanks.

      Where would I run the gcc - v command, from the CPAN shell or just the straight command line? Running from command line gives only:

      Reading specs from C:\GNAT\lib\gcc-lib\pentium-mingw32msv\2.8.1\specs gcc version 2.8.1

      ...which I suppose is the correct info about my gcc version, unless CPAN does something really strange.

      Also, what makes you say my strawberry installation is bolloxed? I have little doubt that this is true, but I am curious as to what I could look for in the future to figure this out myself.

      Cheers.