Re: In function `main':: undefined reference to ...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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)
*****************************



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux