[Gtk-sharp-list] gtk-sharp.dll not working on linux because it references win32 dll's

Todd Berman tberman at off.net
Thu Jul 21 14:48:05 EDT 2005


On Thu, 2005-07-21 at 20:38 +0200, Jost Boekemeier wrote:
> Hi,
> 
> > Because MS didn't thought that other platforms
> > should be supported.
> 
> Neither do I.  Why do you want to make a system
> library like gtk-sharp independent of the operating
> system?  
> 

Because we can, and it is good. It allows someone to build the library
on any operating system and run it anywhere.

> 
> > > b) why only on linux
> > 
> > It isn't only in linux, it is also in MacOSX 
> 
> That's not the point.  I don't understand why you
> cannot write the information during configure.  You
> already do this on windows, why not on Linux and
> MacOSX?
> 

We do write the information during configure, but instead of hard coding
it into the library which makes the resulting binaries not
crossplatform, we put it in a dll mapping file. This allows the binaries
to stay portable.

> 
> > No it CAN'T go in the library itself 
> 
> On windows the information *is* in the library.  Why
> are Linux or MacOSX special?
> 

Not special, just different.

> > incompatible with ECMA and MS.NET in that point. 
> 
> Why?
> 
> 
> > also it is easier
> > to manage building for many platforms the way it is
> > today.
> 
> Why is it easier to hard-code the windows name into
> the library instead of writing @libgtk@ and let
> autoconf do the rest?
> 

As I said above, that results in a binary that is not crossplatform.

Your approach does not actually *GAIN* anything. These libraries would
still be in the GAC, and you would not be able to do an Assembly.Load
("gtk-sharp") and have it work.

So what is your point?

> 
> > So you aren't talking of a user but of a developer,
> 
> The problem is currently that recent versions of
> gtk-sharp cannot be used because the .config files are
> missing in /usr/local/lib/mono/gtk-sharp2.  That's
> all. 


No, the config files reside next to the *ACTUAL* files, as opposed to
next to the symlinks. If you look in /usr/local/lib/mono/gac/.... you
will find gtk-sharp.dll and gtk-sharp.dll.config.

If you look at the files in /usr/local/lib/mono/gtk-sharp-2.0/ you will
see SYMLINKS those real files.

> 
> If there are now other ways to load gtk-sharp, I could
> arrange to change my software.  It's just that I don't
> see a method which loads the most recent version of
> the library, be it 0.6 or 1.x.
> 

MonoDevelop does it fine, so I am sure you can figure out how to manage.

We actually chose a proactive method of identifying all possible
assemblies in the GAC from pc files, and handling it like that. Your
approach may be different, but I assure you, it is possible.

--Todd



More information about the Gtk-sharp-list mailing list