[GRASS-dev] debugging nviz with TclTk 8.5 aqua

Glynn Clements glynn at gclements.plus.com
Wed Jul 23 16:48:46 EDT 2008


Michael Barton wrote:

> Something else to keep in mind. The header I posted is needed by Togl  
> I think. But I also think that it is 8.5 only.

Do you mean that the packages for earlier versions don't include
tkMacOSXInt.h? Togl definitely requires that header, so if it's only
available with 8.5, then your only choice is 8.5.

Which means that you have to link against 8.5.

I'm not sure how OSX handles shared library versions.

On Linux, a library named e.g. libtk.so will normally be a symlink to
the actual library, which will include the version number. The linker
embeds the versioned library name in the executable, and that is used
for locating the library at run time. The unversioned symlink is only
needed at compile time (and many distributions keep the symlink in the
-devel package, along with the headers).

The end result is that you can have multiple versions of a library
installed, and control which version is used at compile time (without
affecting the loading of libraries at run time) by changing the
unversioned symlink.

If OSX is similar, then you may just be able to delete the symlinks
for the older versions.

Alternatively, you could try changing the linking command in
visualization/nviz/src/Makefile, moving XTRA_LDFLAGS (which will
contain the --with-tcltk-libs= directory) to the beginning of the
command, so that it takes precedence over other directories (where the
8.4 libraries are presumably being found by accident).

-- 
Glynn Clements <glynn at gclements.plus.com>


More information about the grass-dev mailing list