Probleme de compilation de librairies

Bonjour,

J'ai un problème sur deux librairies qui ne compilent pas.
Après les avoir installés, quand je charge l'exemple, j'ai un message d'erreur.

J'ai essayé les anciennes versions avec le site : https://www.arduinolibraries.info/ et toujours le même problème.

1/ Librairie Adafruit VL53L0X Time of Flight Micro-LIDAR Distance Sensor Breakout

Message d'erreur :

n file included from vl53l0x.ino:1:
/Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/Adafruit_VL53L0X.h:23:18: error: Wire.h: No such file or directory
In file included from /Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/vl53l0x_device.h:37,
from /Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/vl53l0x_def.h:90,
from /Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/vl53l0x_api_strings.h:32,
from /Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/vl53l0x_api.h:32,
from /Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/Adafruit_VL53L0X.h:24,
from vl53l0x.ino:1:
/Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/vl53l0x_types.h:75: error: conflicting declaration 'typedef unsigned int uint32_t'
/Users/leveque/Desktop/Arduino-1.app/Contents/Resources/Java/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/include/stdint.h:126: error: 'uint32_t' has a previous declaration as 'typedef long unsigned int uint32_t'
/Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/vl53l0x_types.h:80: error: conflicting declaration 'typedef int int32_t'
/Users/leveque/Desktop/Arduino-1.app/Contents/Resources/Java/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/include/stdint.h:125: error: 'int32_t' has a previous declaration as 'typedef long int int32_t'
/Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/vl53l0x_types.h:85: error: conflicting declaration 'typedef short unsigned int uint16_t'
/Users/leveque/Desktop/Arduino-1.app/Contents/Resources/Java/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/include/stdint.h:124: error: 'uint16_t' has a previous declaration as 'typedef unsigned int uint16_t'
/Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/vl53l0x_types.h:90: error: conflicting declaration 'typedef short int int16_t'
/Users/leveque/Desktop/Arduino-1.app/Contents/Resources/Java/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/include/stdint.h:123: error: 'int16_t' has a previous declaration as 'typedef int int16_t'
In file included from vl53l0x.ino:1:
/Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/Adafruit_VL53L0X.h:42: error: ISO C++ forbids initialization of member 'Status'
/Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/Adafruit_VL53L0X.h:42: error: making 'Status' static
/Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/Adafruit_VL53L0X.h:42: error: ISO C++ forbids in-class initialization of non-const static member 'Status'
/Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/Adafruit_VL53L0X.h:46: error: 'Adafruit_VL53L0X::MyDevice' cannot appear in a constant-expression
/Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/Adafruit_VL53L0X.h:46: error: &' cannot appear in a constant-expression /Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/Adafruit_VL53L0X.h:46: error: ISO C++ forbids initialization of member 'pMyDevice' /Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/Adafruit_VL53L0X.h:46: error: making 'pMyDevice' static /Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/Adafruit_VL53L0X.h:46: error: invalid in-class initialization of static data member of non-integral type 'VL53L0X_Dev_t*' /Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/Adafruit_VL53L0X.h:48: error: 'Adafruit_VL53L0X::Version' cannot appear in a constant-expression /Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/Adafruit_VL53L0X.h:48: error: &' cannot appear in a constant-expression
/Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/Adafruit_VL53L0X.h:48: error: ISO C++ forbids initialization of member 'pVersion'
/Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/Adafruit_VL53L0X.h:48: error: making 'pVersion' static
/Users/leveque/Documents/Arduino/libraries/Adafruit_VL53L0X/src/Adafruit_VL53L0X.h:48: error: invalid in-class initialization of static data member of non-integral type 'VL53L0X_Version_t*'

2/ Librairie Sparkfun Micro Oled

Message d'erreur :

/Users/leveque/Documents/Arduino/libraries/SparkFun_Micro_OLED_Breakout-1.2.0/src/hardware.cpp:44: error: 'SPISettings' does not name a type
/Users/leveque/Documents/Arduino/libraries/SparkFun_Micro_OLED_Breakout-1.2.0/src/hardware.cpp: In member function 'void MicroOLED::spiTransfer(byte)':
/Users/leveque/Documents/Arduino/libraries/SparkFun_Micro_OLED_Breakout-1.2.0/src/hardware.cpp:71: error: 'class SPIClass' has no member named 'beginTransaction'
/Users/leveque/Documents/Arduino/libraries/SparkFun_Micro_OLED_Breakout-1.2.0/src/hardware.cpp:71: error: 'oledSettings' was not declared in this scope
/Users/leveque/Documents/Arduino/libraries/SparkFun_Micro_OLED_Breakout-1.2.0/src/hardware.cpp:75: error: 'class SPIClass' has no member named 'endTransaction'

Es ce que ça vous parle ?

Merci

Je ne suis pas un spécialiste mais cela me donne l'impression que le programmeur a pris beaucoup de liberté avec la norme du C/C++ parce que la version du compilateur au moment de l'écriture était bien laxiste.

Et peut être bien que les versions actuelles du compilateur le sont beaucoup moins.

C'est souvent que les bibliothèques Adafruit ne sont pas maintenues. Elles sont écrites pour vendre le matériel, une fois le matériel sorti, les programmeurs passent sur d'autres projets et la société ne leur laisse pas le temps pour faire de la maintenance des anciens produits.
Peut-être qu'en écrivant à Adafruit il te trouveront une version plus à jour.

bonsoir,

Il faudrait donc éviter les produits "Adafruit" ? si dans le temps les produits ne sont pas suivis.....

en effet les exemples adafruit ont l'air d'avoir été mélangés suivant les versions biblios/IDE
aucuns problemes avec les exemples sparkfun sous ide 1.6.4

@EGT59
Je ne me permetrai pas de dire cela, je dis qu'il faut être méfiant.
D'une manière générale les bibliothèques ne s'utilisent pas les yeux fermés, même si je ne comprend pas tout je les ouvre systématiquement.

@elektrax

Tu me confirmes la librairie Micro Oled de Sparkfun marche chez toi mais pas celle d'Adafruit.

Je suis sur ID 1.0.6

Connaitriez vous une carte type Arduino Nano (ou plus petite) avec un minimum de 4 SRAM ?

Merci

#include <Wire.h>
#include <VL53L0X.h>
#include <SPI.h>
#include <Adafruit_GFX.h>

le compilateur ne trouve pas VL53L0X.h,
les exemples sparkfun compilent sans erreur, tu es sous 1.0.6 ??

J ai un vieux mac, avec snow léopard, j ai pas réussi à installer mieux que 1.0.6