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
    

  • Mod

    Hallo

    such das File wo TMask_Frm deklariert ist und binde
    das Verzeichnis zum Linker dazu

    Projekt->Optionen->Verzeichnisse/Bedingungen->Bibliothekspfad

    MfG
    Klaus



  • KlausB schrieb:

    such das File wo TMask_Frm deklariert ist und binde
    das Verzeichnis zum Linker dazu

    Projekt->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.OBJ
    

    in 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
    

Anmelden zum Antworten