[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Bison complains about undefined reference of my own data type
From: |
Samuel Tardieu |
Subject: |
Re: Bison complains about undefined reference of my own data type |
Date: |
Fri, 28 Nov 2008 17:03:13 +0100 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
* Laurence Finston <address@hidden> [2008-11-28 15:48:02 +0100]
| > You need to do it to interface to any library written in C (such as
| > the standard C library for example). For example, try the following
| > C++ code with and without 'extern "C"'. Without it, you won't be able
| > to link. Fortunately, all your system headers already provide you with
| > 'extern "C"' by default.
| >
| > extern "C" void exit(int);
| > int main()
| > {
| > exit(0);
| > }
|
| Thank you for the information. However, I was able to compile and link
| with and without 'extern "C"' using GCC 3.3.3 on a system running
| GNU/Linux (SuSE). I couldn't link when I compiled with `g++' and tried
| to link with `gcc', but the error didn't seem to have anything to do with
| the problem under discussion:
|
| mangle.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
|
| Am I missing something here? Clearly, `extern "C"' has a purpose, or it
| wouldn't exist. Does GCC do something special, or have I done something
| wrong?
I wrote "this C++ code". It means that you must compile it with g++ (otherwise
it is valid C code), as well as link it with g++ (without deriving too much,
let me just say that g++ called in link mode does a bit more than linking --
it takes care of the exceptions, constructors and destructors as well through
another program called collect2).
| It seems to me that if a compiler doesn't mangle any "unqualified" names,
| i.e., ones declared outside of a namespace or a class, it should be possible
to link
| with the object file in which they are defined without the linker having to
| do anything special. However, it's been a long time since I read
| anything about this subject and this may be naive.
The linker does nothing special wrt mangled names. Only the compiler does.
- Bison complains about undefined reference of my own data type, Efstratios Gavves, 2008/11/23
- Re: Bison complains about undefined reference of my own data type, Vukki Starborn, 2008/11/23
- Re: Bison complains about undefined reference of my own data type, sgaurelius, 2008/11/24
- Re: Bison complains about undefined reference of my own data type, Vukki Starborn, 2008/11/24
- Re: Bison complains about undefined reference of my own data type, sgaurelius, 2008/11/28
- Re: Bison complains about undefined reference of my own data type, Laurence Finston, 2008/11/28
- Re: Bison complains about undefined reference of my own data type, Samuel Tardieu, 2008/11/28
- Re: Bison complains about undefined reference of my own data type, Laurence Finston, 2008/11/28
- Re: Bison complains about undefined reference of my own data type,
Samuel Tardieu <=
- Re: Bison complains about undefined reference of my own data type, Laurence Finston, 2008/11/28
- Re: Bison complains about undefined reference of my own data type, Samuel Tardieu, 2008/11/28