wire una son que para modificar librerias libreria las incluyen descargar cuales como bibliotecas archivos c++ c header arduino

c++ - una - que archivos incluyen las librerias de arduino



Mantener todas las bibliotecas en el directorio de bocetos de Arduino (9)

¿Por qué no simplemente escribimos un script con un solo comando de copia, copiando nuestras bibliotecas desde donde se encuentra nuestra biblioteca en la carpeta de la biblioteca IDE de Arduino?

De esta manera mantenemos la estructura de archivos que queremos y usamos los requisitos de la biblioteca IDE sin problemas.

Algo como esto funciona para mí:

cp -r mylibs/* ~/Documents/programs/arduino-1.5.8/libraries/.

Tenga en cuenta que las rutas son relativas a mi propia estructura de archivos.

Espero que esto ayude a alguien. Esto incluye mi yo futuro que apuesto a que leerá esto en un futuro cercano ... ¡como de costumbre!

J

Sé que se supone que debe colocar cualquier biblioteca externa en la carpeta "libraries" del directorio de instalación de Arduino, pero tengo un proyecto que usa varias bibliotecas que he creado para el proyecto y principalmente para mantener todo ese código autocontenido y fuera del archivo pde principal. Sin embargo, he tratado de ubicar las bibliotecas en el mismo directorio que el archivo PDE principal para poder mantener más fácilmente todo sincronizado en subversión (trabajo en esto en varias computadoras) y no quiero tener que seguir trabajando de vuelta y sincronizando las bibliotecas por separado. Además, solo por el hecho de poder cerrar fácilmente la carpeta de bocetos y saber que contiene todo lo que necesita.

Intenté agregar los archivos de encabezado al boceto como una nueva pestaña, pero eso no parece funcionar en absoluto ... ni siquiera importa si deberían estar en el IDE de arduino.

También intenté agregar las librerías al directorio de bocetos en subdirectorios (lo que preferiría en gran medida) y luego vincularlos como:

#include "mylib/mylib.h"

y

#include <mylib/mylib.h>

Pero ambos dan como resultado errores de archivo no encontrado.

es posible? Y, si es así, ¿cómo los incluyo en el archivo principal para compilar? Preferiblemente en sus propios subdirectorios.


Acabo de tener el mismo problema (también me gusta mantener el código independiente), así que anotaré algunas notas; decir que tengo un MyPdeSketch.pde usando MyLibClass.cpp ; entonces lo tengo organizado así

/path/to/skdir/MyPdeSketch/MyPdeSketch.pde /path/to/skdir/MyPdeSketch/MyLibClass/MyLibClass.cpp /path/to/skdir/MyPdeSketch/MyLibClass/MyLibClass.h

(En principio, /path/to/skdir/ aquí es equivalente a ~/sketchbook/ )

Lo que funcionó para mí es algo así como:

mkdir /path/to/arduino-0022/libraries/MyLibClass ln -s /path/to/skdir/MyPdeSketch/MyLibClass/MyLibClass.* /path/to/arduino-0022/libraries/MyLibClass/

Después de reiniciar el IDE, MyLibClass debe mostrarse en '''' Sketch / Import Library ''''.

Tenga en cuenta que la única forma que puedo ver hasta ahora para que un archivo de clase de biblioteca haga referencia a otros archivos de biblioteca es incluirlos relativamente (desde ''ubicación actual''), suponiendo que están todos en la misma carpeta principal arduino-0022/libraries (posiblemente pregunta relacionada sobre desbordamiento de pila: ¿es posible incluir una biblioteca de otra biblioteca usando el IDE de Arduino? ).

De lo contrario, también debería ser posible MyLibClass simbólicamente el directorio MyLibClass directamente en arduino-0022/libraries (en lugar de crear un directorio manualmente y luego vincular simbólicamente los archivos). Por la misma razón, el enlace simbólico a la ubicación alternativa ~/sketchbook/libraries también podría ser problemático.

Finalmente, una organización posiblemente mejor podría ser:

/path/to/skdir/MyLibClass/MyLibClass.cpp /path/to/skdir/MyLibClass/MyLibClass.h /path/to/skdir/MyLibClass/MyPdeSketch/MyPdeSketch.pde

... que, después de enlazar simbólicamente a las libraries , obligaría a MyPdeSketch a mostrarse en los ejemplos de la biblioteca MyLibClass en Arduino IDE (sin embargo, puede que no sea aplicable si quiere incluir automáticamente varias carpetas de clases en un único directorio).

EDITAR: o simplemente use un Makefile , que funcionaría directamente con avr-gcc , pasando por alto el IDE de Arduino (en cuyo caso, la organización de archivos del cuaderno de bocetos se puede aflojar un poco).


Creo que sé lo que necesitas exactamente.

tiene una carpeta de proyecto, indique MYPROJ_FOLDER y desea incluir una carpeta de Bibliotecas que contenga más carpetas de elementos secundarios para sus bibliotecas personalizadas.

debe hacer lo siguiente: 1- crear carpetas de la siguiente manera:

-MyProjFolder -MyProjFolder/MyProjFolder

y luego crea un archivo con el nombre de la carpeta en la extensión .ino -MyProjFolder / MyProjFolder / MyProjFolder.ino

2- Crear carpeta de bibliotecas: -MyProjFolder / libraries <<<<< nombre no es una opción debería llamarse así.

3- Luego crea tus propias librerías -MyProjFolder / libraries / lib1 -MyProjFolder / libraries / lib1 / lib1.cpp -MyProjFolder / libraries / lib1 / examples <<<< esta es una carpeta -MyProjFolder / libraries / lib1 / examples / example1

repite el paso 3 todo lo que quieras

también consulte http://arduino.cc/en/Guide/Libraries


Estoy de acuerdo contigo; esta es una forma intolerable de desarrollar software: ¡requiere que todos los archivos que necesita estén en el mismo directorio que el programa principal!

Para evitar esto, utilizo make para armar un solo archivo .h de mis fuentes .h y .cpp ; puede ver esto usado en este Makefile :

PREPROCESS=gcc -E -C -x c -iquote ./src # -E : Stop after preprocessing. # -C : Don''t discard comments. # -x c : Treat the file as C code. # -iquote ./src : Use ./src for the non-system include path. TARGETS=sketches/morse/morse.h all: $(TARGETS) clean: rm $(TARGETS) %.h: %.h.in $(PREPROCESS) $< -o $@

Arduino es muy exigente con las terminaciones de archivos: si coloca un archivo .cpp o .cc en su directorio, lo usa automáticamente en la fuente y no puede incluir nada que no sea .cpp , .cc o .h , por lo que este es la única forma de hacerlo.

Utilizo un truco similar también para armar archivos JavaScript here .

Esto requiere que ejecute make después de editar sus archivos, pero dado que estoy usando un editor externo (Emacs) de todos modos, esto no me molesta.


Lamentablemente, el Arduino IDE es horrible y no muestra signos de mejora. No existe un sistema de compilación real, por lo que solo le permite crear programas que residen en un único directorio.

La única solución real es escribir un archivo MAKE, luego puedes usar un IDE real. Tengo la esperanza de que algún día alguien escriba un plugin Arduino para QtCreator.

Aquí hay un archivo MAKE de ejemplo:

http://volker.top.geek.nz/arduino/Makefile-Arduino-v1.8


Lo que funcionó para mí es crear un directorio, por ejemplo, "src" en el directorio de croquis, y debajo de ese un directorio para cada biblioteca personal.

Ejemplo:

Tengo un proyecto llamado ObstacleRobot, debajo de eso una carpeta para mi boceto, llamado obstaclerobot (creado automáticamente por el IDE) y allí mi boceto "obstacleRobot.ino"

Hasta ahora tenemos:

/ObstacleRobot /obstaclerobot obstacleRobot.ino

Luego quise incluir una biblioteca personal que estuviera completamente relacionada con este proyecto y no tenía sentido incluirla en las bibliotecas IDE, de hecho, quiero hacer esto para cada parte del robot, pero aún estoy trabajando en ello.

Lo que al final funcionó para mí fue:

/ObstacleRobot /obstaclerobot obstacleRobot.ino /src /Sonar Sonar.h Sonar.cpp

Entonces, lo que tienes que hacer en el boceto principal es escribir el include de la siguiente manera:

#include "src/Sonar/Sonar.h"

Y eso es todo.


Para los bocetos que tengo, los archivos de la biblioteca "*.h" y "*.cpp" realidad residen en la misma carpeta que el boceto, y los llamo como "someheader.h" . También noté que si voy al menú de sketch y add file... el archivo no aparece hasta que cierro y vuelvo a abrir el boceto.


Siguiendo las líneas de Hefny, haz de tu proyecto un ejemplo para tu biblioteca.

Por ejemplo (Unix env), digamos que las bibliotecas están en ~ arduino / libraries

Cree su proyecto ~ arduino / libraries / MyProject, sus bibliotecas van allí (por ejemplo ~ / arduino / libraries / MyProject / module1.h ~ / arduino / libraries / MyProject / module1.cpp ~ / arduino / libraries / MyProject / module2. h ~ / arduino / libraries / MyProject / module2.cpp

Ahora: mkdir -p ~ arduino / libraries / MyProject / examples / myproj

edite ~ arduino / libraries / MyProject / examples / myproj / myproj.ino (tenga en cuenta que esto no es examples / myproj.ino but examples / myproj / myproj.ino)

Reinicie el IDE, debe encontrar su proyecto en el menú Archivo / Ejemplo / MiProyecto.

También tenga en cuenta que hace la inclusión con #include


Tuve el mismo problema. Resuelto para Arduino IDE> 1.8. Parece una especialidad en nuevos IDEs (?) De acuerdo con la referencia (ver el enlace inferior).

Debe agregar un subdirectorio "src" antes de crear una carpeta de biblioteca. Entonces, esencialmente, su proyecto debería verse así:

/SketchDir (with *.ino file) /SketchDir/src /SketchDir/src/yourLib (with .h and .cpp file)

y finalmente en tu boceto tu referencia:

#include "src/yourLib/yourLib.h"

de lo contrario, en mi caso, si me falta la carpeta "src", aparece el mensaje de error de que no puede encontrar el archivo yourLib.cpp.

Nota: Estoy usando un sistema de Windows en caso de que difiera y en realidad VS Code como envoltorio para Arduino IDE. Pero ambos IDE lo compilan con esta estructura.

Referencias: https://forum.arduino.cc/index.php?topic=445230.0