In function `main':: undefined reference to ...
Sriharsha
sriharsha.v@redpinesignals.com
Tue Jan 18 08:59:00 GMT 2005
OOps,
add this to your base.c
Base::Base(){ } // This defines your default constructor.
Graf LĂĄszlĂł wrote:
> I did all what you said Sriharsha.
> Whit file names changed, Makefile modified
> I get the same message:
>
> 1. step: rm *.o
>
> 2. step: g++ -c base.cpp -o base.o
>
> 3. step: g++ axf.cpp base.o -o axf.o
>
> /tmp/ccGshWGj.o(.text+0x4a): In function `main':
> : undefined reference to `Base::Base[in-charge]()'
>
> collect2: ld returned 1 exit status
>
>
> Sriharsha wrote:
>
>> Hi Laszlo,
>> firstly, I suggest that you change the extension of your code
>> files from .c to .cpp.
>>
>> then, in your make file: Change:
>> g++ axf.c -o axf.o
>> to
>> g++ axf.cpp base.o -o axf.o
>>
>> Harsha.
>>
>> Graf LĂĄszlĂł wrote:
>>
>>> Hi Gurus,
>>>
>>> I am Laszlo from Hungary.
>>> Please, take a look at these files:
>>>
>>> --- The main file
>>> ---------------------------------------------------------------------
>>> #include "stdio.h"
>>> #include "stdlib.h"
>>> #include "string.h"
>>> #include "base.h"
>>> int main(int argc, char* argv[])
>>> {
>>> system("clear");
>>> Base* b = new Base();
>>> printf("\n---------- %s ---------------\n", b->toString());
>>> delete b;
>>> return 0;
>>> }//main
>>>
>>> --- The base.h file
>>> ---------------------------------------------------------------------
>>> #ifndef __BASE
>>> #define __BASE
>>> class Base{
>>> private:
>>> char* _str;
>>>
>>> public:
>>> Base();
>>> Base(Base &);
>>> ~Base();
>>>
>>> char* toString();
>>> char* toHtml();
>>> };
>>> #endif
>>>
>>> --- The base.c file
>>> ---------------------------------------------------------------------
>>> #include "base.h"
>>> using namespace std;
>>>
>>> Base::Base(Base &s){
>>> }
>>>
>>> Base::~Base(){
>>> }
>>>
>>> char* Base::toString()
>>> {
>>> char* rv = "this is the toString()";
>>> return rv;
>>> }
>>>
>>> char* Base::toHtml()
>>> {
>>> char* rv = "this is the toHtml()";
>>> return rv;
>>> }
>>>
>>> --- The Makefile file
>>> ---------------------------------------------------------------------
>>> compile :
>>> g++ -c base.c -o base.o
>>> g++ axf.c -o axf.o
>>> clear :
>>> clear
>>> clean :
>>> rm *.o
>>> run :
>>> ./axf.o
>>>
>>> --------------------------------------------------------------------------------------------
>>>
>>> After the command
>>> make clear clean compile run
>>>
>>> I got these error messages:
>>>
>>> rm *.o
>>> g++ -c base.c -o base.o
>>> g++ axf.c -o axf.o
>>>
>>> /tmp/cc2K7HjB.o(.text+0x4a): In function `main':
>>> : undefined reference to `Base::Base[in-charge]()'
>>>
>>> /tmp/cc2K7HjB.o(.text+0x88): In function `main':
>>> : undefined reference to `Base::toString()'
>>> /tmp/cc2K7HjB.o(.text+0xaf): In function `main':
>>> : undefined reference to `Base::~Base [in-charge]()'
>>> collect2: ld returned 1 exit status
>>>
>>> make: *** [compile] Error 1
>>>
>>> Could somebody tell me what is wrong there?
>>> Thank you.
>>
>>
>>
>>
>
--
*****************************
* Sriharsha Vedurmudi
* Software Engineer
*
* Redpine Signals Inc.
* Gate #395, Plot 87,88
* Sagar Society, Road #2,
* Banjara Hills,
* Hyderabad - 500 034
* www.redpinesignals.com
*
* +91-40-23559911 (Office)
* +91-98491-33133 (Mobile)
*****************************
More information about the Gcc-help
mailing list