unerklärliche Compilermeldung



  • Hallo,

    ich teste gerade eine Profibuskarte von Hilscher. Hier habe ich das demo zum laufen bekommen. Danach habe ich die für mich benötigten Funktionen, zum ansprechen der Karte, in mein eigenes Projekt eingefügt.

    Seither kommt die Fehlermeldung:
    "expected declaration of statement at end of input"

    Die Fehlerzeilennummer ist natürlich das Ende des Quellcodes.
    Hier kann ich mir überhaupt nicht vorstellen woran es liegen kann.
    Ich habe mehrmals das funktionstüchtige demo mit meinem Programm verglichen.
    Werr kann mir das erklären, auch nur wo ich suchen kann ??

    Danke
    worst_case



  • worst_case schrieb:

    Hier habe ich das demo zum laufen bekommen. Danach habe ich die für mich benötigten Funktionen, zum ansprechen der Karte, in mein eigenes Projekt eingefügt.

    Seither kommt die Fehlermeldung:
    "expected declaration of statement at end of input"
    Werr kann mir das erklären, auch nur wo ich suchen kann ??

    Ich gehe von C++ aus, etwas Sourcecode könnte nicht schaden.

    Ansonsten würde ich Dir raten, zu prüfen, ob Du alles Klammern geschlossen hast.



  • diese Fehlermeldung kenne ich, allerdings habe ich leider vergessen, woran es gelegen hat...

    Aber ich denke es liegt an einem der Folgenden dinge:

    -Klammer vergessen
    -Semikolon vergessen
    -unbewusste typdeklaration (z.B. durch tippfehler)

    Moment, mir ists grade eingefallen... Ich bin mir ziemlich sicher dass das davon kommt, das man in der Headerdatei nach der Klassendeklaration kein Semikolon stellt. Das verlangt g++ anscheinend, da hab ich auch ein paar mal blöd gesucht.

    Ansonsten wenns das nicht ist, vergleichs mal mit diff(+frontend), da findest du vielleicht mehr als mit freiem auge.



  • DrPhil_Guth schrieb:

    Ich bin mir ziemlich sicher dass das davon kommt, das man in der Headerdatei nach der Klassendeklaration kein Semikolon stellt. Das verlangt g++ anscheinend, da hab ich auch ein paar mal blöd gesucht.

    Nein, das verlangt C++ 😉



  • DrPhil_Guth schrieb:

    diese Fehlermeldung kenne ich, allerdings habe ich leider vergessen, woran es gelegen hat...

    Aber ich denke es liegt an einem der Folgenden dinge:

    -Klammer vergessen
    -Semikolon vergessen
    -unbewusste typdeklaration (z.B. durch tippfehler)

    Moment, mir ists grade eingefallen... Ich bin mir ziemlich sicher dass das davon kommt, das man in der Headerdatei nach der Klassendeklaration kein Semikolon stellt.

    Die Idee ist gut, darum hab ich's ausprobiert: bei mir kommt unter gcc 4.1 diese Fehlermeldung nicht.
    Er bemängelt sogar explizit, dass ich eine Klasse habe, die nicht mit einem Semikolon abgeschlossen habe.

    DrPhil_Guth schrieb:

    Das verlangt g++ anscheinend, da hab ich auch ein paar mal blöd gesucht.

    Das verlangt C++, weil Du hinter der Definition auch eine Deklaration setzen könntest. Wenn Du das nicht möchtest, musst Du sofort das Semikolon setzen.

    Beispiel:

    class foobar
    {
      public:
        int snafu;
    } Variable;
    

    Ohne den Sourcecode selbst zu sehen, wüsste ich jetzt auch nichts, zumal Google zu der Fehlermeldung ausschließlich diesen Thread lieferte.



  • Hallo,

    vielen Dank für die ganzen Tip's.
    Ich weiß nicht woran es gelegen hat, aber ich die Orginaldatei von meinem Programm nochmals mit den neuen Treibercode friesiert. Und siehe da
    es ließ sich fast 😃 auf Anhieb compilieren.

    Nochmals Danke
    worst_case



  • worst_case schrieb:

    Ich weiß nicht woran es gelegen hat, aber ich die Orginaldatei von meinem Programm nochmals mit den neuen Treibercode friesiert. Und siehe da
    es ließ sich fast 😃 auf Anhieb compilieren.

    Ich geb' Dir trotzdem den Tip, den fehlerhaften Code zu debuggen. Treten unbekannte Fehler auf, wenn es zeitkritisch ist, ist das unpraktisch 😉


Anmelden zum Antworten