Linker-Error
-
Hallo zusammen,
bei uns in der Firma wurde die Ordnerstruktur der Abteilungen verändert... und ich bekomme jetzt, nach der Änderung Linker Fehler, hab' die *.obj-files gelöscht und das projekt auch neu erzeugt, was kann ich sonst noch tun damit das wieder kompiliert? Danke!
[Linker Fehler] Unresolved external '_Mask_Frm' referenced from Z:\BEREICH\BECH\BU_MOTION\PROJEKTE\508XXX\508957_MSIA\SOFTWARE\BUMASO\BUMASO 1.0.5\TRACEWINDOW.OBJ [Linker Fehler] Unresolved external 'TMask_Frm::' referenced from Z:\BEREICH\BECH\BU_MOTION\PROJEKTE\508XXX\508957_MSIA\SOFTWARE\BUMASO\BUMASO 1.0.5\BUMASO.OBJ
-
Hallo
such das File wo TMask_Frm deklariert ist und binde
das Verzeichnis zum Linker dazuProjekt->Optionen->Verzeichnisse/Bedingungen->Bibliothekspfad
MfG
Klaus
-
KlausB schrieb:
such das File wo TMask_Frm deklariert ist und binde
das Verzeichnis zum Linker dazuProjekt->Optionen->Verzeichnisse/Bedingungen->Bibliothekspfad
hab' ich gemacht, allerdings keine Änderung...:(
-
Lade mal die entsprechende bpr Datei in nen Editor und überprüfe die ganzen Pfade und korrigiere sie ggf. Sicherheitshalber vorher ne Kopie der originalen bpr Datei anlegen.
-
Peter schrieb:
Lade mal die entsprechende bpr Datei in nen Editor und überprüfe die ganzen Pfade und korrigiere sie ggf. Sicherheitshalber vorher ne Kopie der originalen bpr Datei anlegen.
hm, verdammt..die pfade sind nur bei [HistoryLists\hlIncludePath] und [HistoryLists\hlLibraryPath] vorhanden, diese hab' ich angepasst, gibt aber immernoch den selben error...
-
Sch...e, manche Dinge werden auch mit relativen Pfadangaben gespeichert z.B.
'..\..\Verz1\prog.cpp' oder so ähnlich. Vielleicht liegt da ja noch der Hund begraben
In manch anderen Fällen bin ich auch schon hergegangen, hab alle cpp/h Dateien weggesichert, hab ein neues Projekt erstellt und die Programmdateien wieder hinzugebunden. Geht oft schneller als stundenlang rumzusuchen
-
Peter schrieb:
Sch...e, manche Dinge werden auch mit relativen Pfadangaben gespeichert z.B.
'..\..\Verz1\prog.cpp' oder so ähnlich. Vielleicht liegt da ja noch der Hund begraben
In manch anderen Fällen bin ich auch schon hergegangen, hab alle cpp/h Dateien weggesichert, hab ein neues Projekt erstellt und die Programmdateien wieder hinzugebunden. Geht oft schneller als stundenlang rumzusuchen
hm, okay, hab' jetzt ein neues projekt erstellt und jetzt krieg ich:
[Linker Fehler] Fatal: Error detected (TLI443)
[Linker Fehler] Fatal: Access violation. Link terminated.was heisst das denn?

-
roN schrieb:
hm, okay, hab' jetzt ein neues projekt erstellt und jetzt krieg ich:
[Linker Fehler] Fatal: Error detected (TLI443)
[Linker Fehler] Fatal: Access violation. Link terminated.was heisst das denn?

nach erneutem compilieren meint er jetzt nur noch:
[Linker Fehler] Unresolved external '_Dokument_TMDp' referenced from Z:\BEREICH\BECH\BU_MOTION\PROJEKTE\508XXX\508957_MSIA\SOFTWARE\BUMASO\BUMASO 1.0.5\TPROFIBUS.OBJ
-
Z: scheint ein Netzlaufwerk zu sein ...
"Verweisst" vielleicht TPROFIBUS noch auf ein anderes Modul welches jetzt auch nicht mehr da liegt wie früher ?
Übrigens, ich hab meine Projekte immer auf der lokalen Platte und kopiere Abends alles per Batch auf unseren Server.
-
Peter schrieb:
Z: scheint ein Netzlaufwerk zu sein ...
"Verweisst" vielleicht TPROFIBUS noch auf ein anderes Modul welches jetzt auch nicht mehr da liegt wie früher ?
Übrigens, ich hab meine Projekte immer auf der lokalen Platte und kopiere Abends alles per Batch auf unseren Server.TPROFIBUS greift noch auf prof_dpb.lib zu, diese hab' ich allerdings auch in den Ordner mit dem neuen Projkekt kopiert und auch hinzugfefügt:
USELIB("prof_dpb.lib");
-
Hmm, dann weiss ich so aus der Ferne leider auch keinen Rat mehr

-
Peter schrieb:
Hmm, dann weiss ich so aus der Ferne leider auch keinen Rat mehr

hm, weisst du evt. WO ich mehr rat finden könnte?
-
Leider nein, wird sowieso schwierig werden ohne das Projekt zu kennen bzw. vor sich zu haben. Was mir aber noch einfällt, des öfteren habe ich schon erlebt, daß in der bpr Datei Dinge wie z.B. libs etc. konfiguriert sind, die in diesem Projekt niemals benötigt werden. Diese Pfade kann man einfach mit einem Editor entfernen.
-
Ich habe gestern fast den ganzen Tag damit verbracht, einen "Unresolved
external"-Linker-Fehler zu beheben. Dabei habe ich auch merkwürdige Effekte
festgestellt, die ich nicht verstehe. Ich versuche mal zu beschreiben, was
passiert war und wie ich es behoben habe:
Nachdem der Linker immer wieder behauptet hat, es gäbe einen "Unresolved
external"-Fehler, obwohl die entsprechende Unit zum Projekt gehörte, habe ich
- wie von Peter beschrieben - ein neues Projekt erstellt und alle Dateien aus
dem ursprünglichen Projekt dort hinzugefügt. Erstaunlicherweise ließ sich das
Projekt spontan kompilieren und linken.
Ich habe dann angefangen zu untersuchen, welche Unterschiede zwischen den
beiden Projekten bestehen, also Verzeichnisse, Packages usw. Dazu habe ich -
wie auch schon vorgeschlagen - die Dateien in einem Editor geöffnet. Das hat
aber überhaupt nichts gebracht.
Als nächstes habe ich dann das neue Projekt umbenannt und in das ursprüngliche
Verzeichnis kopiert (natürlich unter Anpassung der Pfade). Dabei habe ich dann
auch in der Projektverwaltung die Anordnung der Units und Formulare verändert,
schön die Formulare untereinander und die restlichen Units. Und da war er
wieder der Linker-Fehler.
Ich habe natürlich dann angefangen, die Formulare in der Projektverwaltung
hoch- und runterzuschieben und, nachdem ich ein bestimmtes Formular nach oben
geschoben hatte, kam der Linkerfehler. Schob ich es runter, war der Fehler weg.
Warum das so ist, habe ich bisher noch nicht verstanden. Das Formular bindet
zwar die Unit ein, die im Fehler angemeckert wird, aber andere Formulare tun
das auch - ohne Fehler.
Vielleicht weiß jemand, wie die Anordnung der Units im Projekt sich auf das
Linken auswirkt, und ob es das überhaupt sollte. Würde mich sehr interessieren.Gruß,
Alexander
-
Also du meinst die Anordnung in der Projekt.cpp z.B.USEFORM("Unit1.cpp", Form1);?
-
roN schrieb:
Also du meinst die Anordnung in der Projekt.cpp z.B.USEFORM("Unit1.cpp", Form1);?
Nein. Ich meine die Projektverwaltung unter dem Menüpunkt Ansicht oder
über Strg+Alt+F11.Gruß,
Alexander
-
roN schrieb:
Also du meinst die Anordnung in der Projekt.cpp z.B.USEFORM("Unit1.cpp", Form1);?
Halloooooooooooooo? strange, jetzt hab' ich da ein bisschen rumgeschoben und plötzlich hats funktioniert... *häääääääääääääää?* hoffentlich weiss Borland davon...
-
Definiere "ein bischen rumgeschoben"...
-junix
-
roN schrieb:
jetzt hab' ich da ein bisschen rumgeschoben und plötzlich hats funktioniert...
Wo hast Du jetzt rumgeschoben? In der Projekt.cpp oder in der Projektver-
waltung?Gruß,
Alexander
-
junix schrieb:
Definiere "ein bischen rumgeschoben"...
-junix
ja, du hast recht, beim linker error heissts es ja meistens:
[Linker Fehler] Unresolved external '_Mask_Frm' referenced from Z:\BEREICH\BECH\BU_MOTION\PROJEKTE\508XXX\508957_MSIA\SOFTWARE\BUMASO\BUMASO 1.0.5\TPROFIBUS.OBJin diesem Fall müsste dann die cpp-Datei in er Mask_Frm drin ist, an die oberste Stelle... z.B. so
USEFORM("Mask.cpp", Mask_Frm); // diesen Eintrag zu oberst einfügen