Unresolved External - das leidige Thema



  • Trink Dich einen! :p



  • Ich habe diesen Beitrag nur mal so überflogen, schlag mich nicht, wenn ich jetzt was sage, was schon erwähnt wurde:

    Hast du irgend welche Funktionen in der *.cpp Datei gelöscht, wo in der *.h noch die Deklaration steht ?

    [ Dieser Beitrag wurde am 16.12.2002 um 16:15 Uhr von YLIREBUS editiert. ]



  • Hallo

    Du hat die includes in einen Namespace gepackt. In der Library sind die Klassen jedoch nicht in einem Namespace. Deshalb findet er sie nicht mehr.

    Gruss Chris



  • Original erstellt von Chrisi_K:
    Du hat die includes in einen Namespace gepackt. In der Library sind die Klassen jedoch nicht in einem Namespace. Deshalb findet er sie nicht mehr.

    Woher weißt du das denn? 😕



  • Oh, oh: das könnt's sein. Hoffentlich hat sich WebFritzi noch nicht unter den Tisch getrunken... 😃

    @Eßer: Er weiß es halt...(pssssst)

    [ Dieser Beitrag wurde am 16.12.2002 um 16:35 Uhr von @xel editiert. ]

    [ Dieser Beitrag wurde am 16.12.2002 um 16:42 Uhr von @xel editiert. ]



  • @Esser

    [LinkerFehler] Unresolved external 'Jpeg::TJPEGImage::~TJPEGImage() __fastcall' referenced from E:\C++\PROJEKTE\REGIONBUILDER\MAINWINDOW.OBJ.

    Daher weiss ich das.



  • Nö, kann nicht sein. Die Linkerfehler kommen auch mit Dyn. RTL und Laufzeitpackages.

    Habs ausprobiert.

    @WebFritzi: Hör nicht auf Axel.



  • Oh, du hast recht. Trotzdem: Die Linkerfehler kommen auch mit Dyn. RTL und Laufzeitpackages.

    Edit: Wenn du kein 'ß' hast, dann bitte "Ehser". Danke.

    [ Dieser Beitrag wurde am 16.12.2002 um 16:47 Uhr von Eßer editiert. ]



  • Geht jetzt, aber fragt mich nicht, warum. Ich hatte da noch ein anderes Problem: ich hatte die ganzen jpeg- und gif-Sachen mal weggelassen und habe ganz normal mit Laufzeitpackages kompiliert - wunderbar. OK. Dann habe ich das wieder deaktiviert, und was bekomme ich da? Eine AccessViolation. Direkt nach dem Linken. Wo? Keine Ahnung. Hat er nichts zu gesagt. Nach 50000mal rumprobieren hab ich dann irgendwas im Quelltext geändert, und es lief. Keine Ahnung warum. Irgendwie spinnt der BCB manchmal so richtig ab. Das muss ich hier mal so sagen.
    Nichts für ungut, Leute. Danke der Anteilnahme und euren Ratekünsten. 😉



  • Na dann,

    auf geheiß gehts nun hier weiter. 😃

    Also ich habe x-mal probiert, aber immer der sch... Linkerfehler.

    [Linker Fehler] Unresolved external
    '__fastcall Jpeg::TJPEGImage::~TJPEGImage()'
    referenced from D:\ALIFABU\PROGRAMM\TEMP\TSTAMMFORM.OBJ

    ... 'Jpeg::TJPEGImage::' ...

    ... '__fastcall Jpeg::TJPEGImage::TJPEGImage()' ...

    Das sind immer der Konstruktor und der Dekontruktor.

    (1) Kann es sein, daß das Pascal<->C++ probleme sind ?

    (2) Frage in der Not: Gibt es eine ähnliche Freeware-Komponente ?

    in hope
    Mario 🙄



  • Hi,

    ich gleich nochmal.

    Hab mir gerade mal die jpeg.hpp angeschaut.

    ...
    _fastcall virtual TJPEGImage(void);
    __fastcall virtual ~TJPEGImage(void);
    ...
    

    Ich könnte mir vorstellen, daß es in der jpeg.obj gar keinen
    Konstruktor und Dekonstruktor gibt, den man reinlinken kann.
    Denn im Pascal geht das ja immer mit TJPEGImage.Create und
    TJPEGImage.Destroy . *mmmmm*

    Hat denn irgend jemand noch die "jpeg.pas" ?

    Gruß
    Mario



  • Hallo und Dankeschön an alle..... 🙂

    .JUHU PROBLEM GELÖST ... 😃
    Menü "Projekt/Optionsquelle bearbeiten", in den Parametern

    <PACKAGES value="... VCL50.bpi ..."/>
    hatte ich ja schon die "vcljpg50.bpi" eingetragen.

    doch dann kam ich auf die Idee in die Parameter
    <LIBRARIES value="... VCLIB50.lib ..."/>
    und
    <SPARELIBS value="... VCL50.lib ... "/>
    die Datei "vcljpg50.lib" einzutragen,

    ... und 😮 mmmmmmmmmmm

    Manchmal brauchen die kleinen grauen Zellen doch etwas länger.
    Man wird ja auch nicht jünger 😉

    PS: Eigendlich müsste doch der Builder diese Parameter automatisch nachtragen,
    oder 😕

    Dankeschön nochmal, und ein schönes Wochenende

    Mario 🙂



  • Ne, ist alles richtig eingestellt. Aber mich interessiert ja mal, was in diesem Falle das "Unresolved External" bedeutet, also "Unerfüllter externer Baustein" oder so...

    Diese Fehelermeldung kommt dann, wenn etwas deklariert ist und nicht implementiert ist.

    Wenn du eine Header einbindest und der Linker kann die Datei nicht finden in der die Implementierung steht oder die Implementierung steht nicht in der gefundenen Datei, dann kommt du auch Fehlermeldung.


Anmelden zum Antworten