HELP! : "multiply defined" error
Emmanuel Lambert
Emmanuel.Lambert@advalvas.be
Mon Nov 15 03:26:00 GMT 1999
Hi again
When I try to compile a program with g++, I always get "multiply defined"
errors in the final stage.
I
n this small trial program, I have 3 files :
--------------------myclass.h-----------------------------------
#ifndef myclass_h
#define myclass_h 1
#include <iostream>
class myclass
{
public:
myclass();
~myclass();
myclass(char* naam);
void do_it();
protected:
private:
char* _name;
};
#endif
----------------------------------------------------------------------
------------------------myclass.cpp--------------------------------
#include "myclass.h"
myclass::myclass()
{
}
myclass::~myclass()
{
}
myclass::myclass(char* name)
{
_name = name;
}
void myclass::do_it()
{
cout << _name << "\n";
}
----------------------------------------------------------------------
--------------------prog.cpp----------------------------------------
#include <iostream>
#include "myclass.cpp"
main ()
{
myclass* a = new myclass("Manu");
a->do_it();
delete a;
cout << "done\n";
}
----------------------------------------------------------------------
Compiling these files SEPERATELY works just fine :
g++ -c myclass.cpp
g++ -c prog.cpp
Now I have 2 .o files : myclass.o and prog.o
So, what I do now is this :
g++ -o prog prog.o myclass.o
Right ?
BUT THIS DOES NOT WORK!
Here is my screen output :
----------------------------------------------------------------------------
----
archytas> g++ -o prog prog.o myclass.o
ld: fatal: symbol `myclass::do_it(void)' is multiply defined:
(file prog.o and file myclass.o);
ld: fatal: symbol `myclass::myclass(void)' is multiply defined:
(file prog.o and file myclass.o);
ld: fatal: symbol `myclass::~myclass(void)' is multiply defined:
(file prog.o and file myclass.o);
ld: fatal: symbol `myclass::myclass(char *)' is multiply defined:
(file prog.o and file myclass.o);
ld: fatal: File processing errors. No output written to prog
collect2: ld returned 1 exit status
archytas>
----------------------------------------------------------------------------
----
This drives me crazy! What can I do about it.
I am unable to find any information about this weird "multiply defined"
error on the Internet.
Thank you in advance for your help.
Emmanuel Lambert
More information about the Gcc-help
mailing list