c++ undefined reference to destructor

Tut mir Leid, aber ich bin wieder öffnen. Nach dem Sortieren der eigen Fehler, dieses beschnitten, rechts wieder nach oben. Genau der gleiche code ist genau der gleiche Fehler. (gut, der compiler gefunden die eigen-Header dieser Zeit.) So, gleiche Frage:

Habe ich gesucht Destruktor c++ undefined reference to no avail. Aber ich bin mir ziemlich sicher, dass dies eine ziemlich einfache slip auf mein Teil.

Fehler:

/tmp/ccDsaJ9v.o: In function `main':
geomSetup.cpp:(.text+0x5ab): undefined reference to `SASAGeometry::~SASAGeometry()'
geomSetup.cpp:(.text+0x5cd): undefined reference to `SASAGeometry::~SASAGeometry()'
collect2: ld returned 1 exit status
make: *** [geomTest] Error 1

SASAGeometry.h:

class SASAGeometry
{
public:
//methods
  SASAGeometry() ;
  int makeFromFiles(char *, char *, char *) ;
  ~SASAGeometry() ;
//globals
  std::list<E......};

SASAGeometry.cpp

SASAGeometry::SASAGeometry(){}

int SASAGeometry::makeFromFiles(char * xyz_file, char * dat_file, char * atoms_file)
{
  sasa_transformMatrix basisMaker ;
  list<Vect...
...
}

SASAGeometry::~SASAGeometry(){}

geomTest.cpp

int main(int argv, char * argc[])
{
  list<Vector3d>::iterator listIterator ;
  char * xyz_file = argc[1] ;
  char * dat_file = argc[2] ;
  char * atoms_file = argc[3] ;
  SASAGeometry geomMaker ;
  int geomErr....

...
return 0 ;
}

makefile :

# compiler choice
CXX = g++

# executable path
BIN = .

# include paths (or lack thereof :p)
INCLUDE = -I .

# compilation flags
CXXFLAGS = -pipe # -O6

# linking flags
LFLAGS = -lm

# object declarations
GeomTest_OBJS = geomTest.o SASAGeometry.o

geomTest_source     = SASAGeometry.cpp SASAGeometry.h sasa_transformMatrix.cpp sasa_transformMatrix.h geomSetup.cpp

SASAGeometry.o  :   SASAGeometry.cpp SASAGeometry.h sasa_transformMatrix.cpp sasa_transformMatrix.h

geomTest.o  :   geomSetup.cpp SASAGeometry.o

# compile 
geomTest    : $(GeomTest_OBJS) makefile
            $(CXX) -o geomTest.o -o SASAGeometry.o $(LIBS) $(INCLUDE) $(CXXFLAGS) $(geomTest_source) $(LFLAGS)
            $(CXX) $(LIBS) $(INCLUDE) $(CXXFLAGS) -o $(BIN)/geomTest geomTest.o SASAGeometry.o $(LFLAGS)

clean       : \rm *.o *~ p1

Meine INCLUDE und LIBS flags sind alle ok, alle anderen Methoden in der SASAGeometry Klasse sind ganz glücklich definiert.

Vielen Dank im Voraus.

  • Seit Ihrem Destruktor ist trivial und nicht-virtuellen, warum Sie nicht löschen Sie es einfach und lassen Sie den compiler liefert Sie mit ein???
  • Ihrer link-Zeile nicht angezeigt werden, enthalten die SASAGeometry kompilierte Objekt.
  • cheers Nim. Das war es, ich habe jetzt viele Probleme mit der unter anderem die eigen-Header. Ah gut, sollte in der Lage sein zu finden, DAS auf dem forum, vielen Dank an alle!
InformationsquelleAutor MarkJL | 2011-10-24
Schreibe einen Kommentar