Jump to content

Recommended Posts

Geschrieben

Ich habe eine Build-Umgebung entsprechend dem Tinkerforge-Tutorial aufgesetzt. Das Kompilieren von Bricklets funktioniert bereits. Jetzt habe ich versucht, die Master Brick Firmware zu kompilieren. Dabei erhalte ich folgende Fehlermeldung:    

In file included from ......./src/extensions/wifi/wifi_data.c:31:0:  
  ......./src/logging/logging.h:118:25: error: expected identifier or '(' before '{' token
#define logf(str,  ...) {}
                        ^

Der Fehler ist vermutlich nicht in logging.h selbst zu suchen? Er wird wahrscheinlich durch ein Problem an anderer Stelle verursacht?  

Geschrieben

Ich kann das Problem hier unter Linux mit Docker und dem aktuellen GitHub Stand der Master Brick Firmware nicht nachstellen.

Hast du dir mit build_environment_setup.sh unter Linux oder in einer VM die Build Umgebung ausgesetzt, oder nutzt du das Docker Image?

Geschrieben

Ich habe innerhalb einer VM (Debian 10) die  Build-Umgebung aufgesetzt. Das Skript ist hierbei nicht unmittelbar durchgelaufen, da ein paar Pakete durch aktuellere (mit neuem Namen) ersetzt werden mussten...

Ich habe jetzt eine Lösung gefunden: Der Fehler wurde ausschließlich bei logf(...) gemeldet - nicht bei den anderen #defines. Daraus würde ich schließen, dass der Compiler "logf" wohl als "Logarithmus mit Wertebereich double" interpretiert. Denn es funktioniert nun, wenn ich einfach alle "logf(" beispielsweise durch "logfatal(" ersetze.

Geschrieben

Wegen dem leeren { } - Ausdruck? Das scheint es nicht zu sein. Deinen Vorschlag habe ich jetzt zwar noch nicht getestet. Aber ich möchte ja eigentlich die Debugging-Meldungen aktivieren (das war der Grund für das Neukompilieren). Auch bei dem anderen if-Zweig kommt dann der Fehler. Die runde Klammer habe ich testweise noch eingefügt:

error: expected expression before 'do'
 #define logf(str,  ...) (do{ printf("<F> " str, ##__VA_ARGS__); }while(0))

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...