[Scribus] Re: Can anybody explain KDE/qt3 situation?
Craig Ringer
craig
Wed Oct 19 04:21:14 CEST 2005
Asif Lodhi wrote:
> Hi David,
>
> On 10/16/05, David Goodenough <david.goodenough at btconnect.com> wrote:
>
>>On Sunday 16 October 2005 21:02, Craig Bradney wrote:
>>
>>>On Sunday 16 October 2005 21:57, Benjamin Green wrote:
>>>
>>>>>.....................................................................................X
>>
>>Its because of the gcc 4.0 ABI transition, which means that the Qt
>>libraries
>>have changed their names. That ties in to KDE.
>
>
> Could you tell me what is GCC ABI? Specifically, what does ABI stand
> for?
"Application Binary Interface"
It's essentially a set of rules and conventions a compiler uses when
generating a binary so that it can be compatibly dynamically linked to
other binaries. Two executables that use a different ABI might free and
allocate memory differently, use different function calling conventions,
and otherwise have incompatible behaviour that prevents them from being
linked at runtime.
C++ is a large and complex language. The standards committee never
defined much (any?) of the ABI, so it's largely set by compiler writers.
They'll change the ABI if some part of the current ABI is limiting what
they can do, or if they feel it's necessary to achieve better
compatibility with some other compiler's generated executables. The C
ABI for most compilers seems to be better defined and more stable.
This is one of the reasons working in C++ on win32 is hell, by the way.
You load a DLL built in MSVC++6, a second DLL built with Borland, and a
third built with gcc into an app built with MSVC++7. Just to make life
more fun, each compiler usually links in its own version of the C
library, with its own incompatible memory allocation and deallocation
routines. The set of rules and restrictions you must follow to give this
a remote chance of working is horrific, and worse it's apallingly
underdocumented.
Be really, really glad for a shared libc and common compiler on Linux.
--
Craig Ringer
More information about the scribus
mailing list