[wxhaskell-users] Re: [GUI] RE: Announce: wxHaskell 0.2
Wolfgang Thaller
wolfgang.thaller at gmx.net
Wed Sep 17 19:57:23 EDT 2003
Let me provide a few comments about the C++ linking story....
Sven Panne wrote:
> No, it is not: A library has no "runtime system", it's usually the
> startup
> code [...]. And you get the
> correct startup code for the language you are using (C vs. C++) "under
> the
> hood" when linking your application together.
On Mac OS X, Windows/Mingw32 and RedHat Linux 8, you get the same
startup code no matter whether you use gcc or g++. The only difference
between the gcc and g++ linker drivers is that g++ adds -lstdc++.
On Mac OS X, every dynamic library gets it's own startup code (haven't
checked on Linux or Windows, but I guess it's the same).
Daan Leijen:
> Yes! otherwise we *do* get all those C vs. C++ linking problems that
> you describe. Actually, on most platforms you can't even link in C++
> code
> due to all kinds of linking errors with the standard C libraries (stdc
> vs. stdc++)
>
> Maybe GHC can be convinced to use the C++ compiler to compile all its
> stuff?? That would surely solve our problems.
A small mixed C++ & Haskell test program, runs fine on Mac OS X,
Windows and RedHat 8 when I add -lstdc++ to the command line.
On Windows, there's of course the problem that GHC includes it's own
copy of GCC, but no C++ includes, but I happen to have another copy of
them :-).
While being short, my test program uses static constructors and
destructors, and it calls the C++ standard library (iostream and
string, to be exact), and everything works perfectly. What kinds of
problems did you experience?
GHCi, on the other hand, cannot currenlty load C++ object files (nor
can it currently load the C++ standard library on systems where it's a
static library), so using dynamic libraries is definitely necessary at
least during development. Of course, it would be nice if I could just
statically link my wxHaskell application when I'm done, but GHCi is
more important.
Cheers,
Wolfgang
More information about the GUI
mailing list