1. I've built BLT, but when I run "bltwish", it doesn't know about any
of the BLT commands.
% graph .g
invalid command name "graph"
Starting with Tcl 8.x, the BLT commands are stored in their own
namespace called "blt". The idea is to prevent name clashes with Tcl
commands and variables from other packages, such as a "table" command
in two different packages.
You can access the BLT commands in a couple of ways.
Prefix the BLT commands with the namespace qualifier "blt::"
% blt::graph .g
% blt::table . .g -resize both
or import the BLT commands into the global namespace.
% namespace import blt::*
% graph .g
% table . .g -resize both
2. I'm try to compile BLT with ActiveState's Tcl/Tk distribution,
but all the demos core dump.
Look in the "include" directory where you installed ActiveState.
Is there an "X11" directory? Remove it and recompile BLT.
It contains all the fake X11 headers needed for Windows builds.
So it's okay to remove it for Solaris and Linux.
3. Under Windows the "drag&drop" command doesn't work for me.
The "drag&drop" command uses the "send" command to communicate
between Tk applications and under Windows Tk has no built-in
"send" command. In ./demos/scripts/send.tcl there is a "send"
look-a-like that uses the DDE package. Source this first and
make sure you invoke the procedures "SendInit" and "SendVerify"
*before* you create and drag-and-drop targets.
4. I'm using Windows 95/98 and the -stipple option doesn't seem to work.
Under Windows 95/98, your bitmap must be exactly 8x8. If you use
a bigger or smaller bitmap, Windows won't stipple the pattern correctly.
For bitmaps larger than 8x8, only the upper-left 8x8 corner of the
bitmap is used. For smaller bitmaps, the bitmap is extended to 8x8
with the new bits 0 (blank). This is a limitation of Windows 95/98,
5. I can't run bltwish.exe under Windows with Tcl/Tk version 8.0.
Did you compile and install Tcl/Tk yourself? Tcl is expecting a
registry key to be set. The installer normally does that for you.
The key tells Tcl where to find the Tcl library scripts. Setting
the TCL_LIBRARY environment variable to the location of the Tcl
script directory (where init.tcl is located) will fix things.
Dynamic loading (package require BLT) of BLT should also work.
This problem is fixed in later versions of Tcl.
6. I'm on a DEC Alpha running the graph widget. I don't see any ticks
There's a problem with code generated by the GNU C compiler
2.8.[0-1] for bltGrAxis.c and bltGrLine.c (I think it's just
these two files).
Try compiling with either the native "cc" compiler or compile
the two modules with -O0.
7. When I compile BLT on Solaris (maybe others?), I get lots of error
messages in the form:
<unknown> 0xf44 /usr/local/lib/libtcl7.6.a(tclCmdIL.o)
<unknown> 0xf3c /usr/local/lib/libtcl7.6.a(tclCmdIL.o)
<unknown> 0x628 /usr/local/lib/libtcl7.6.a(tclCmdIL.o)
This is because Tcl and Tk have been installed only as static libraries,
not shared libraries. The ./src/shared/Makefile creates the shared BLT
library with a back-link to these libraries. The advantage of this link
is that when you dynamically load BLT, the correct Tcl/Tk libraries are
automatically searched for any unresolved references.
You can fix this in one of two ways.
o Remove the back-link. Edit ./src/shared/Makefile and cut the
"-ltcl* -ltk*" references from the SHLIB_LD_LIBS macro.
o Create shared libraries for Tcl and Tk. Re-configure, compile,
and install Tcl/Tk from their sources. Make sure you add the
"--enable-shared" switch to "configure".
8. How do I create a shared library of BLT under AIX?
Check that Tcl and Tk were both configured with the --enable-shared flag.
When you compile each of them, a "lib.exp" file is created in their
respective "unix" subdirectories. The lib.exp files are removed when
you do a "make clean", so you may need to recompile.
The BLT Makefile uses the TCL_SRC_DIR and TK_SRC_DIR values in the
tclConfig.sh and tkConfig.sh files to find these lib.exp files. You
may need to edit ./src/Makefile/shared to reflect the real paths of
the Tcl and Tk source distributions.
1. I can't compile BLT.
Send the output of both "./configure" and "make" to me at
This will make it easier to track down the exact problem.
2. I get a segfault when running BLT in my application.
The best method is to send a Tcl script that I can run to
demonstrate the problem. The hard work you do pruning
down the problem into a small script will greatly help solve
it. Once I see what the problem is, I can usually fix it right
Make sure you include all the necessary pieces to make it
run (e.g. data file). If it's needed, also include directions
how to make the problem occur (e.g. "double click on the left
3. The manual page lies.
I appreciate any help in pointing out errors, omissions, or lies
in the manuals. If you have ideas how they might be improved,
I'd love to hear them.