Linker Fehler



  • mr_crabs schrieb:

    Library Ws2_32.lib

    Zum Projekt hinzufügen. Sie befindet sich unter $(BDS)\lib\psdk.



  • Danke sehr!!! War schon der Verzweiflung nah, aber jetzt scheint es zu funktionieren!

    Danke an Alle!

    Gruß Crabs



  • Nächstes Problem:

    Habe nun ein weiteres C++ Projekt, indem ich C-Dateien mit einbinde. Nun bringt der Linker folgende Meldung:

    [Linker Fataler Fehler] Fatal: Illegal option: Testordner\Source;c:\programme\borland\cbuilder5\lib\debug

    Die Borlandhilfe sagt folgendes:
    Schwerwiegender Fehler. Sie versuchen, eine Linker-Option zu verwenden, die für Projekt nicht zulässig oder nicht vorhanden ist.
    Sie haben wahrscheinlich in der Kommandozeile einen ungültign Schalter oder Unterschalter angegeben.

    Ich selbst habe am Quellcode nichts verändert, die eingebundenen C-Sourcen funktionieren in einem anderen Projekt auch.
    Das C++ Projekt alleine funktioniert auch, nur das Zusammenfügen nicht.

    Mit der Fehlererklärung kann ich auch nicht viel anfangen. Hat jemand eine Idee?



  • http://www.c-plusplus.net/forum/viewtopic-var-t-is-39195.html

    hab das in der Faq gefunden, hat aber nicht funktioniert.



  • "Funktioniert nicht" ist keine Problembeschreibung.
    Hast du deine "Optionenquelle" mal auf mögliche Falscheinträge geprüft, insbesondere die erwähnte LFLAGS-Zeile?



  • ich habe so wie es in der faq beschrieben war ausprobiert:
    die Zeile habe ich so vorgefunden:
    <LFLAGS value="-Iobj -D"" -H:0x800000 -Hc:0x10000 -Sc:0x80000 -aa -Tpe -x -v"/>

    Habe dann anschließend das -v komplett gelöscht und anschließend das Porjekt neu kompiliert.
    Die Fehlermeldung kam wieder. Anschließend habe ich das -v (mit Leerzeichen vor dem Minuszeichen)wieder hinzugefügt, jedoch erscheint die Fehlermeldung weiterhin.



  • Das mit dem 'v' dürfte nur speziell die in der FAQ erwähnte Fehlermeldung betreffen, deine weicht ja ab.
    Was mich wundert sind die "", steht das wirklich so drin oder hat das Forum hier was verbogen?
    Vergleiche den eintrag doch mal mit dem aus einem funktionierenden Projekt.



  • Bei einem Projekt, wo ich diese C-Dateien auch eingebunden habe und dieses auch Funktioniert sieht der Pfad folgendermaßen aus:

    <LFLAGS value="-IDebug -D"" -E2 -H:0x800000 -Hc:0x10000 -Sc:0x80000 -aa -Tpe -x -v"/>

    Also scheint alles angezeigt zu werden hier im Forum.

    Ich frage mich außerdem, warum gerade nach dem Einbinden der C-Dateien solch ein Fehler entstanden ist.
    Diese Dateien werden bis jetzt nur eingebunden, aber nicht verwendet.
    Der Aufruf der Funktionen habe ich noch gar nicht vorgenommen.
    Und das ursprüngliche Projekt lies sich fehlerfrei übersetzen und ausführen.



  • Es könnte sich um einen Bug im BCB5 handeln: http://groups.google.com/group/borland.public.cppbuilder.ide/browse_thread/thread/c83889adbfbfc83f
    Hast du alle verfügbaren Updates eingespielt (ging glaube ich bis SP4)?
    Hast du irgendwo in den Pfadnamen zum BCB oder einer der eingebundenen Sourcen Sonderzeichen wie z.B. '+' oder '-' etc.?



  • es sind keine sonderzeichen in den sourcen vorhanden. hab nun mal ein paar funktionen aus den soucen gelöscht, die ich nicht benötige und danach lies sich alles fehlerfei übersetzen. der linker meldete auch keine probleme. also hat sich dieses problem gelöst. Danke nochmal für die Hilfe

    hab aber wieder ein neues:
    Ich möchte nun die C-Sourcen erweitern und dabei eine C++ Funtkion aufrufen, um Daten abzuholen.

    Ich habe eine C++ Funktion:

    WORD TfrmMain::getTemp(WORD x, y);
    

    und diese Funktion möchte ich in einer C-Datei aufrufen:

    extern WORD getTemp(WORD,WORD); //Funktion bekannt geben
    .
    .
    .
    WORD get_IstTemperatur()
    {
     return getTemp(1,1); 
    }
    

    Nun bringt der Linker wieder den Fehler:

    [Linker Fehler] Unresolved external '_get_IstTemperatur' referenced from K:\NEUE_TESTUMGEBUNG\DEBUG\BLABLA.OBJ

    Ich verstehe nicht wo nun der fehler liegt!?! Kann man keine C++ Funktionen in C-Dateien aufrufen?


Anmelden zum Antworten