Le compilateur C18 qui ne connait pas un type

Dans un précédent article, je parlais de C18 et du message très explicite quand on mélangeait déclarations et « vrai » code. Sachez qu’il sort le même message d’erreur quand il ne connait pas un type. Je prend l’exemple du code suivant :

// Extern global  variables
extern DISPLAY_t display;
extern const eeprom_addr_t COUNTER_VALUE_ADDRESS_IN_EEPROM;

Et bien comme il manquait l’en-tête définissant le type DISPLAY_t, et ben j’avais droit à une belle Error: syntax error sur la 2e ligne…

Vous voilà prévenus.

Publicités

3 Réponses

  1. Tu pourrais pas passer ton code dans gcc (ou même dans un analyseur statique du genre cppcheck) avant de le compiler pour la cible finale ? Avec gcc -S par exemple (compile only), ça devrait être rapide et te trouver toutes les erreurs de syntaxe avec des messages un peu plus lisibles.

    Une fois que ça passe, tu peux rentrer ton code dans C18. Ou inversement, quand C18 dit « syntax error », demane à gcc de trouver le problème…

    J'aime

    20 novembre 2013 à 9:24

    • C’est effectivement une solution à laquelle je devrais réfléchir. Ce compilateur est pénible, il faut dire la vérité aux gens ! Il faudra juste voir comment les en-têtes utilisées (notamment définissant les registres des PIC) sont récupérables et les constantes à définir pour correctement émuler le projet. Ouais, ça me tente bien 🙂

      J'aime

      20 novembre 2013 à 10:56

  2. Sebastien Brulais

    Salut Pierre,

    Un conseil: oublie C18, et regarde XC8 est un peu plus propre (tout comme XC16 et XC32). Bon c’est pas dit qu’il fasse pas la même chose, mais depuis que j’ai migré vers ces compilo j’ai beaucoup moins de « magic error »

    A+

    J'aime

    20 novembre 2013 à 12:45

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s