C Bibliothek mit g++? (undefined reference)



  • Hallo,

    ich hab ein kleines c Programm etwas in Klassen gepackt und c++ spezifisch umgeschrieben. Wenn ich das ganze jetzt mit g++ kompilieren will (die entsprechenden Bibliotheken dazu gelinkt), kommen immer einige "undefined reference" Fehler, wie als hätte ich die eine Bibliothek nicht dazugelinkt.. die anderen gehen aber.
    Genau das selbe passiert wenn ich das c Programm mit g++ kompilieren will (mit gcc geht logischerweise alles).
    Die Bibliotheken wurden alle mit gcc kompiliert und das kann ich leider nicht ändern.
    Eigentlich dachte ich der g++ kann alles, was der gcc auch kann... hier aber scheinbar nicht.
    Gibtes jetzt irgendeine Möglichkeit mein c++ Programm mit den bibliotheken zum laufen zu bekommen?

    danke



  • ohne code keine hilfe möglich.

    auf bald
    oenone



  • ich weiß jetzt nicht,was ich dazu für einen Code veröffentlichen sollte.

    Wie ich die Header der Bibliethek includiere (mit #include) ? Oder wie ich g++ aufrufe? Oder eine Seite voll mit den headern der Bibliotheken... oder am besten noch die kompletten Bibliotheken. Auf diese habe ich eh keinen Schreibzugriff um irgend etwas ändern zu können. Der Programmcode an sich ist ja korrekt, da das Programm mit gcc perfekt kompiliert. Nur mit g++ gibt es Probleme (beim linken)... ich hab mir mal die Paramter durchgelesen aber nichts interessantes gefunden, um das Verhalten beim Linken mit C Bibliotheken zu ändern.

    Ich kann mir vorstellen, dass das Problem recht allgemein ist und es daher auch eine allgemeine Lösung gibt.



  • also ich hatte noch nie derartige probleme..

    sicher, dass gcc richtig installiert ist?

    auf bald
    oenone



  • Du kannst ja zumindest die Fehlermeldungen angeben.



  • Also der gcc müsste schon stimmen... hab ihn gestern noch mal remerged (gentoo) hat aber nichts gebracht. Vieleicht hilft es ja wenn ich die glibc noch mal neu erstelle?
    Der Fehlercode ist derselbe wie als wenn ich die Bibliothe gar nicht einbinden würde. Also zählt er alle benutzen Funktionen etc aus dem Header auf und erzählt etwas von undefined reference... also etwa so

    some_name.o(.text+0xb02): In function `some_function()':
    : undefined reference to `some_other_funcion(some_type*)'
    

    Ich hab jetzt etwas gefuden...vieleicht hilft es wenn ich

    extern "C" {
    #include "someCheader.h"
    }
    

    schreibe



  • Wenn das C Funktionen sind, dann sollte sowas natürlich helfen.



  • Ponto schrieb:

    Wenn das C Funktionen sind, dann sollte sowas natürlich helfen.

    In der Tat. in den C Bibliotheken sind tatsächlich C Funktionen (man glaubt es kaum).
    Und es hilft.


Anmelden zum Antworten