dll file names in glib and gtk are different from those in official gtk packages
Bug #343977 reported by
Shixin Zeng
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OAH Build |
Confirmed
|
Medium
|
Haakon Sporsheim |
Bug Description
in the official gtk libraries, there is a -0 append to dll names, such as libglib-2.0-0.dll, while for dll's produced by oah build, it's something like libglib-2.0.dll. This is not an issue to build libraries on oah, but for applications based on these libraries, they are linked to -0 version, although I don't know if it's caused by oah build or by messed gtk libraries (I have different gtk/gstreamer libraries from differenct sources).
The other problem caused by this inconsistency is that the precompiled libraries (such as gconf) can't be used with oah built glib/gtk libraries.
To post a comment you must log in.
The difference is intentional (I assume) and necessary, as the DLLs are not necessarily binary compatible. For starters, they use different C runtimes, so any API that involves passing C file descriptors is incompatible. The "official" binaries on ftp.gnome.org are built with mingw and use msvcrt.dll. They are built with the aid of the "libtool" tool, as normal in GNUish software. The "lib" prefix of the basenames is a Unix convention, and the "-0" (or in some cases another number) suffix is a versioning mechanism, both imposed by libtool. Neither is really necessary or natural in a MSVS-based environment.
In fact, I just today sent a mail to Haakon, saying that it would be better if the names were even more different, exactly to avoid the chain of thought you seem to express: thinking that the small difference in name is accidental. In his reply he mentioned this bug, thus I add this comment now.
My mail to Haakon:
I think it would be better if the DLLs OAH generates
would have names that were more clearly different than the names of
the DLLs from the "official" mingw+libtool -based builds. For
instance, for Pango you have libpango-1.0.dll, and the "official" DLL
is libpango-1.0-0.dll. Those names are so close that misguided
end-users might think the difference is accidental, and start renaming
DLLs in some cases where they (by accident, or intentionally) try to
mix apps and libs from different sources, ending up with much
confusion.