Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Borland C++ Builder » Linker Fehler - Nur warum?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.12.2006, 21:33 Uhr
~User0815
Gast


Hallo,

Ich habe nen grosses Problem und weiss noch nicht wie ich das lösen kann. Aber ihr könnt mir bestimmt helfen.

Es geht um folgendes: Ich habe ein Fremdprojekt, das in MSVC++6 geschrieben ist. Nun muss ich es in Borland BDS2006 umschreiben. Eine ziemlich undankbare Aufgabe.
Nun hänge ich schon länger an einer Stelle fest: Ich bekomme ein paar Linker-Fehler, die besagen, dass der Linker gewisse Funktionen (größtenteils Destruktoren) nicht auflösen kann. Und ich bin mir nicht sicher warum. Bin mir nicht sicher, ob ich da was mit den abstrakten Klassen noch nicht ganz richtig verstanden habe oder ob es an libs liegen könnte... der Aufbau ist schematisch etwa so (abgekürzt und zusammengefasst):


C++:
class c1
{
  c1() {}
  virtual ~c1() {}

  virtual bool func1(bool var1) = 0;
  static bool funcX(bool varX);
  // usw.
}


class c2 : public c1
{
  c2();
  virtual ~c2();

  // weitere Funktionen
}


class c3 : public c2
{
  c3();
  ~c3();

  // weitere Funktionen
}



So, und nun wird ein Zeiger auf eine Klasse "c3" angelegt und schon kommen die Linker Fehler. Was muss vorhanden sein, damit es eigentlich keinen Fehler geben kann? Doch eigentlich nur eine Implementation der Funktionen. Nur leider kann ich diese in Visual auch nicht finden.
- Wie kann ich herausfinden, wo eine Funktion implemetiert ist, wenn sie denn implementiert ist?

Und da wäre noch was: Bei dem Visual Projekt sind ganz viele *.lib - Dateien dabei. Kann eine *.lib Datei auch Implementationen enthalten? Weil bisher habe ich sie nur in Zusammenhang mit DLL's benutzt. Und das coff2omf Tool von Borland konvert diese auch nicht (kommt 512 Byte raus... google...).
Und in ner DLL kanns auch net stehen...

Also mein Problem nochmal zusammengefasst:
Versuche nen VC++ Projekt nach Borland umzuschreiben. Bekomme beim Anlegen eines Zeigers auf eine Klasse den beschriebenen Linker-Fehler. Kann jedoch nicht sagen, warum der Linker die Referenz in Borland nicht findet, in Visual aber scheinbar schon irgendwie (ich finds in VC++ aber nicht).
Die Suchpfade im Compiler sollten auch identisch sein (hab ich zumindest versucht einzustellen).

Blöde gefragt: Was mach ich jetzt??? Es kann doch nicht so schwierig sein.

Danke schonmal!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
09.12.2006, 08:05 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
so wie das da Oben steht, dürfte der Compiler nur anmeckern, dass die Klassen nicht mit einem ";" abgeschlossen wurden.
Für nähere Auskünfte bräuchte man nun wieder die berühmte Kristallkugel...
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 09.12.2006 um 08:07 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.12.2006, 09:56 Uhr
~User0815
Gast


Oh natürlich, die habe ich vergessen... aber nur in dem Beispiel oben.

Die Kristallkugel bräuchte ich auch. Welche Infos wären denn noch brauchbar?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Borland C++ Builder ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: