Alors j'ai un petit soucis que je ne suis pas arrivé à résoudre comme je voulais. Ça se passe sous Energia (IDE Arduino-like pour MSP430), je ne sais pas si sous Arduino ça donnerait la même chose mais je suis prêt à parier que oui (je pense que c'est une question de C/C++), c'est pour ça que je viens quand même en parler ici
La situation : je crée une nouvelle librairie, et de le dossier de la librairie je crée un autre dossier pour ranger les lib bas niveau. pour donner des ptits noms, appelons cette lib MaLib et la librairie bas niveau dans le dossier "MaLib/driver" MaLibBasNiveau. Je veux que le header de ma lib serve juste de compilation d' #include. Donc j'ai :
Malib.h dans le dossier MaLib
MaLibBasNiveau.h et MaLibBasNiveau.cpp dans le dossier MaLib/driver
Maintenant si je fais appel à Test() dans un prog j'ai droit au fameux "undefined reference to Test()".
Je suppose que quelqu'un va me filer la réponse immédiatement mais j'ai un peu tout tenté, et je me suis rendu compte que le .cpp n'était tout simplement pas compilé (les .h oui en revanche) et que la seule fois où ça marche c'est quand le le .cpp est directement placé dans le dossier MaLib et non dans MaLib\driver.
Bonjour,
J'avais déjà fait un topic avec le même sujet = ça ne marche pas sauf :
Si ta librairie est dans le répertoire librairie de l'environnement Arduino + la remarque de XavierMiller.
@+
[EDIT] J'ai retrouvé le topic : [RESOLU] syntaxe #include - Français - Arduino Forum
XavierMiller:
utilise des / au lieu de \ dans tes chemins, ou alors \
J'y avais pensé (vu que je ne m'en rappel jamais) et en fait ça n'a pas d'importance, qu'on mettre l'un ou l'autre les .h compile bien. De même que désespéré j'ai mis des #include partout mais aucun résultats
XavierMiller:
Tu n'as pas d'autre message d'erreur ou d'avertissement ? (mets -Wall dans l'option de gcc)
Rien, on voit simplement que le .cpp n'est pas compilé, donc effectivement la fonction n'est pas défini. Par contre par Energia je ne crois pas qu'on puisse rajouter des options à la compil, si tu sais me dire où ça se passe
icare:
Bonjour,
J'avais déjà fait un topic avec le même sujet = ça ne marche pas sauf :
Si ta librairie est dans le répertoire librairie de l'environnement Arduino + la remarque de XavierMiller.
@+
[EDIT] J'ai retrouvé le topic : [RESOLU] syntaxe #include - Français - Arduino Forum
Ah ça me disait quelque chose cette histoire aussi ... Merci ! Bon au moins je sais que je l'ai dans le baba xD enfin qu'il faudra que je me passe de beaux rangements :s
icare:
Bonjour,
J'avais déjà fait un topic avec le même sujet = ça ne marche pas sauf :
Si ta librairie est dans le répertoire librairie de l'environnement Arduino + la remarque de XavierMiller.
@+
[EDIT] J'ai retrouvé le topic : [RESOLU] syntaxe #include - Français - Arduino Forum
Ah ça me disait quelque chose cette histoire aussi ... Merci ! Bon au moins je sais que je l'ai dans le baba xD enfin qu'il faudra que je me passe de beaux rangements :s
Exact, l'IDE Arduino ne le permet pas, entre autres parce que de la façon dont les librairies sont distribuées il y a en général pas mal de codes d'exemples dans des sous-répertoires de la lib, et que leur re-compilation à chaque fois pourrait poser des problèmes/prendre du temps.
Cependant il y en a un qui doit fonctionner : utility. Il est notamment utilisé par les librairies standards Arduino. Donc si dans ton cas utiliser utility au lieu de driver a un sens, ça doit pouvoir le faire.
Punaise Haifger j'avais pas vu ton post et je cherchais ce topic justement parce que je venais de découvrir cette subtilité et que je voulais faire partager ma "découverte" ... xD