trouble.texi (90075) | trouble.texi (103445) |
---|---|
1@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2@c 1999, 2000, 2001 Free Software Foundation, Inc. 3@c This is part of the GCC manual. 4@c For copying conditions, see the file gcc.texi. 5 6@node Trouble 7@chapter Known Causes of Trouble with GCC 8@cindex bugs, known --- 91 unchanged lines hidden (view full) --- 100@section Interoperation 101 102This section lists various difficulties encountered in using GCC 103together with other compilers or with the assemblers, linkers, 104libraries and debuggers on certain systems. 105 106@itemize @bullet 107@item | 1@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2@c 1999, 2000, 2001 Free Software Foundation, Inc. 3@c This is part of the GCC manual. 4@c For copying conditions, see the file gcc.texi. 5 6@node Trouble 7@chapter Known Causes of Trouble with GCC 8@cindex bugs, known --- 91 unchanged lines hidden (view full) --- 100@section Interoperation 101 102This section lists various difficulties encountered in using GCC 103together with other compilers or with the assemblers, linkers, 104libraries and debuggers on certain systems. 105 106@itemize @bullet 107@item |
108G++ does not do name mangling in the same way as other C++ 109compilers. This means that object files compiled with one compiler 110cannot be used with another. | 108On many platforms, GCC supports a different ABI for C++ than do other 109compilers, so the object files compiled by GCC cannot be used with object 110files generated by another C++ compiler. |
111 | 111 |
112This effect is intentional, to protect you from more subtle problems. | 112An area where the difference is most apparent is name mangling. The use 113of different name mangling is intentional, to protect you from more subtle 114problems. |
113Compilers differ as to many internal details of C++ implementation, 114including: how class instances are laid out, how multiple inheritance is 115implemented, and how virtual function calls are handled. If the name 116encoding were made the same, your programs would link against libraries 117provided from other compilers---but the programs would then crash when 118run. Incompatible libraries are then detected at link time, rather than 119at run time. 120 --- 1342 unchanged lines hidden --- | 115Compilers differ as to many internal details of C++ implementation, 116including: how class instances are laid out, how multiple inheritance is 117implemented, and how virtual function calls are handled. If the name 118encoding were made the same, your programs would link against libraries 119provided from other compilers---but the programs would then crash when 120run. Incompatible libraries are then detected at link time, rather than 121at run time. 122 --- 1342 unchanged lines hidden --- |