[GRASS-dev] debugging nviz with TclTk 8.5 aqua

Michael Barton michael.barton at asu.edu
Wed Jul 23 17:15:02 EDT 2008


On Jul 23, 2008, at 1:48 PM, Glynn Clements wrote:

>
> 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.

I misspoke. At least on my office computer, tkMacOSXInt.h is available  
for both 8.4 and 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).

There is a lot of that on the Mac too. In the frameworks structure,  
there is a "current" folder, which is a symlink to one of (often)  
several versions of a package.

>
>
> 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).

You can either directly select the version folder you want (inside the  
"Versions" folder) or change the symlink "Current" folder.

Michael



More information about the grass-dev mailing list