Link terminated
-
Seit neuestem bekomme ich beim Compilieren (besser gesagt: Linken) folgende Fehlermeldungen:
[Linker Fehler] Fatal: Access violation. Link terminated. [Linker Warnung] Unable to perform incremental link - performing full link...Als Hilfe dazu gibt der C++Builder folgendes an:
Fehler #1:
Bitte notieren Sie sich die Umstände, unter denen diese Meldung verursacht wurde, und informieren Sie den technischen Support von Borland.
Fehler #2:
Der Linker hat in einer seiner Statusdateien (Projektname.IL*) einen Fehler gefunden. Daher wurde ein neuer Link-Vorgang gestartet und neue Statusdateien angelegt.Das Projekt wird aber trotz der Meldungen voll gelinkt und gestartet. Also was soll das Ganze dann?
-
Hast Du eventuell die include-Reihenfolge der Header 'vermasselt'? Irgendwas vor #include <vcl.h> included? Irgendwas vor dem pragma hdrstop included?
-
Die CPP sieht so aus:
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "UMainServer.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TfrmMain *frmMain; ...und die *.h
//--------------------------------------------------------------------------- #ifndef UMainServerH #define UMainServerH //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ComCtrls.hpp> #include <Dialogs.hpp> #include <ExtCtrls.hpp> #include <ExtDlgs.hpp> #include <NMSTRM.hpp> #include <Psock.hpp> #include <Math.hpp> #include "StreamData.h" #include <jpeg.hpp> #include <objbase.h> #include <registry.hpp> class TfrmMain : public TForm { __published: // IDE-managed Components TNMStrm *NMStrm; TNMStrmServ *NMStrmServ; void __fastcall NMStrmServMSG(TComponent *Sender, const AnsiString sFrom, TStream *strm); private: // User declarations AnsiString sServerName; public: // User declarations __fastcall TfrmMain(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TfrmMain *frmMain; //--------------------------------------------------------------------------- #endifWo bei ich aber sagen muss, dass meine CPP und H - Dateien immer so gestaltet werden und es bis jetzt nie zu solchen Fehler gekommen ist. Der oben beschriebene Fehler tritt auch nur sporadisch auf.
-
Das sieht so auch ok aus. Hast Du mal alle 'unnötigen' Dateien gelöscht und das Projekt neu kompiliert?
-
Selbstverfreilich. Hat aber keinen Einfluß.
-
Sieh mal in den Borland Newsgroups nach, da gibt's massenhaft Diskussionen zum Thema.
Ob auch eine Lösung bzw. Abhilfe dabei ist kann ich allerdings nicht sagen.
-
Häufig passiert das, wenn irgendwelche OBJ Dateien "korrupt" sind... Es empfiehlt sich OBJ und TDS zu löschen und ein "PRojekt neu erstellen" auszuführen (Alt + F9)
-junix
-
Wie kann das passieren, dass OBJ-Dateien korrupt sind? Schließlich schreibt ja nur der BCB drin rum.
-
Vielleicht sind sie ja nicht wirklich korrupt aber haben eine Datenfolge die dem inkrementellen Linker ein Bein stellt? Softwarefehler nennt man sowas, egal wer drin rumschreibt (o;
-junix