Node:Configuring the Tcl/Tk library module under Windows, Next:, Previous:Installing the Tcl/Tk library module under UNIX, Up:Interfacing with Tcl/Tk



Configuring the Tcl/Tk library module under Windows

Question:
I need to use a different Tcl/Tk version from the one SICStus is compiled against. How do I do?

The symptom of this is that Windows complains about not finding tcl<ver>.dll.

See the release notes for what version of Tcl/Tk was used to build SICStus. If you want to use another Tcl/Tk version, you need to recompile library(tcltk). You can do this by following these steps:

(Please do not embark on this unless you are fairly familiar with command-prompts and compilation procedures).

  1. You need MSVC version 6.0 or later. 5.x or 4.x might work but have not been tested.
  2. Compile the Tcl/Tk object code:
              % cd library/tcltk
              % cl -Ic:/progra~1/Tcl/include -Ic:/progra~1/sicstu~1/include -c *.c
              
    If you do not have a shell which expands "*.c", you need to replace "*.c" with the name of all C source files in library/tcltk.
  3. Build the foreign resource (assuming Bash/Cygwin):
              % cd library
              % ../bin/splfr tcltk.pl tcltk/*.obj \
                c:/progra~1/Tcl/lib/tcl82.lib c:/progra~1/Tcl/lib/tk82.lib
              
    Again, you might need to spell out "*.obj". Also, don't forget to adjust the actual paths to your needs.

    The following sample session shows how it may look:

              % cl -Ic:/progra~1/Tcl/include -Ic:/progra~1/sicstu~1/include -c *.c
              Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 11.00.7022 for 80x86
              Copyright (C) Microsoft Corp 1984-1997. All rights reserved.
              
              tcl.c
              tk.c
              tkappini.c
              tkterm.c
              tkterm.c(231) : warning C4113: 'void (__cdecl *)(void)' differs in parameter lists from 'v
              oid (__cdecl *)(void )'
              util.c
              Generating Code...
              % ../bin/splfr tcltk.pl tcltk/*.obj \
                c:/progra~1/Tcl/lib/tcl82.lib c:/progra~1/Tcl/lib/tk82.lib
              SICStus 3.8.5 (Windows_NT-4-586): Fri Jan 08 09:44:23 1999
              Licensed to SICS
              
              yes
              {C:\TEMP\tcltkglu.c generated, 40 msec}
              
              yes
              tcltkglu.c
                 Creating library C:\TEMP\junk.lib and object C:\TEMP\junk.exp
              

  4. Test your new resource:
              % sicstus
              SICStus 3.8.5 (x86-win32-nt-4): Fri Jan 08 09:44:23 1999
              Licensed to SICS
              | ?- use_module(library(tcltk)).
              {loading c:/program files/sicstus prolog/library/tcltk.po...}
              {loaded c:/program files/sicstus prolog/library/tcltk.po in module tcltk, 90 msec 27664 bytes}
              
              yes