Inclure un fichier dans un dossier dans une bibliothèque Arduino
Je suis en train d'écrire une bibliothèque Arduino et je veux inclure les fichiers dans un sous-répertoire dans le dossier de la bibliothèque. Plus précisément, je veux que les fichiers soient accessibles à partir du sketch Arduino.
C'est ma structure de répertoire:
MyLib/MyLib.cpp
MyLib/MyLib.h
MyLib/Extra/SomeNiceFunctions.cpp
MyLib/Extra/SomeNiceFunctions.h
C'est de cette façon que je suis en train d'essayer d'inclure le fichier:
#include <MyLib.h>
#include <Extra/SomeNiceFunctions.h>
Évidemment c'est faux, car de la façon dont l'IDE est y compris les dossiers de la bibliothèque. Quoi d'autre devrais-je essayer? J'ai pu diviser le dossier Extra à l'autre "Bibliothèque" (un autre dossier), mais ce n'est pas ce que je suis après.
EDIT: C'est l'erreur que je reçois undefined reference to 'font8x8'
. Ceci est défini dans Extra/SomeNiceFunctions.h
.
Vous devez vous connecter pour publier un commentaire.
Ne pas utiliser
au lieu d'utiliser
L'aide de l'angle-entre parenthèses, le compilateur recherche dans la norme-dossiers pour inclure des fichiers. Vous souhaitez que vos fichiers personnalisés dans votre répertoire de travail.
undefined reference to 'font8x8'
. font8x8 est défini dansSomeNiceFunctions.h
. Tout fonctionne correctement, si je copie tous les fichiers dans le dossier de la bibliothèque.SomeNiceFunctions.h
etSomeNiceFunctions.cpp
dansMyLib
). Ma conjecture est que l'IDE est à la recherche d'.h
fichiers dans chaque dossier dans le dossier de la bibliothèque, mais pas à l'intérieur de dossiers dans les dossiers. J'espère qu'un sens!Concernant notamment Arduion/Energia bibliothèques qui sont dans Arduino/Energia sous-dossiers:
Regardez où votre fichier include principal est (eg. arduino.h /energia.h) et aller jusqu'à dans la structure de répertoire avec ..\ ou vers le bas jusqu'à ce que vous obtenez à l'désiré h fichier que vous souhaitez inclure.
par exemple.
J'ai:
..hardware\cores\cc3200\energia.h
..hardware\libraries\SPI\SPI.h
Afin de les utiliser dans un .fichier cpp le SPI.h fonctions, j'ai à ajouter:
#include <energia.h>
suivie par
#include <..\..\libraries\SPI\SPI.h
J'ai eu quelques problème avec cela. Je voulais juste une solution simple et tout en écrivant une bibliothèque dans le RPC est la bonne manière - j'ai pris une esquisse - dire robo.ino fichier et l'ajouter à une simple bibliothèque - de sorte qu'il n'y a qu'un seul fichier dans la bibliothèque sous un dossier appelé Robot robo.h
Maintenant dans le Mouvement.ino - je viens d'inclure le fichier
La seule chose que vous devez ajouter pour des fonctions simples est un prototype de la déclaration ou assurez-vous que vos fonctions sont commandées par la première utilisation.
Ainsi, par exemple, - mettre Setup() en bas et à une fonction comme:
comme une définition du prototype à la tête de la robo.h fichier
Il vous permet de partager une esquisse de code commune sans avoir à les convertir à un RPC lib. Mais vous devriez vraiment le faire bien sûr.
Emprunt de ce débordement de pile question,
Essayer