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