Référence indéfinie vers vtable for ArduiPi_OLED
Bonjour à tous et bonne annéée!
Je suis un peu novice et j'ai un problème en voulant utilisée une librairie "en parallèle"
Je m'explique. J'ai un Raspberry sur lequel j'ai installé lalibrarire RadioHead.
https://github.com/hallard/RadioHead
(C'est du LoRa. Cette librarire permet de lire des paquets envoyé par Radio 868Mhz)
En soit cette librarire fontionne bien.
J'ai compilé et j'exécute le fichier qui ce trouve dans
https://github.com/hallard/RadioHead...les/raspi/rf95
(après compilation)
Il m'affiche donc les paquets reçus.
J'ai aussi un écran LCE OLED 128x64 sur lequel je souhaite afficher les messages reçus.
Pour cela j'ai encore installé la librairire
https://github.com/hallard/ArduiPi_OLED
et j'arrive avec succès affciher un demo avec le fichier
https://github.com/hallard/ArduiPi_O...aster/examples
Le problème plus concrètement.
Apèrs avoir exécuté la commande
je souhaite donc que les messages reçus soit aussi affcihés sur mon écran LCD. (Je dis aussi, car je les lis bien dans mon terminal)
Il faut aussi savoir que dans /usr/local/include/, j'ai bien ceci
Code:
1 2 3 4 5 6
| ls -ls /usr/local/include/
total 80
4 -rw-r--r-- 1 root staff 3931 jan 6 22:54 Adafruit_GFX.h
8 -rw-r--r-- 1 root staff 7272 jan 6 22:54 ArduiPi_OLED.h
4 -rw-r--r-- 1 root staff 2474 jan 6 22:54 ArduiPi_OLED_lib.h
64 -rw-r--r-- 1 root staff 61898 jan 6 22:54 bcm2835.h |
Alors j'ai édité le fichier
https://github.com/hallard/RadioHead...client.cpp#L21
et j'ai ajouté à la ligne 21 ceci
Code:
1 2 3 4 5 6 7 8 9 10
| /*
* OLED
*/
#include "ArduiPi_OLED_lib.h"
#include "Adafruit_GFX.h"
#include "ArduiPi_OLED.h"
#include <getopt.h>
// Instantiate the display
ArduiPi_OLED display; |
Ce qu'il se passe, c'est qu'après avoir ajouter ceci et je compile, j'ai ce message d'erreur:
Citation:
pierrot@smartidea2:~/Soft/RadioHead/examples/raspi/rf95 $ sudo make
g++ -DRASPBERRY_PI -DBCM2835_NO_DELAY_COMPATIBILITY -D__BASEFILE__=\"rf95_server\" -c -I../../.. rf95_server.cpp
g++ rf95_server.o RH_RF95.o RasPi.o RHHardwareSPI.o RHGenericDriver.o RHGenericSPI.o RHSPIDriver.o -lbcm2835 -o rf95_server
rf95_server.o*: Dans la fonction «*__static_initialization_and_destruction_0(int, int)*»*:
rf95_server.cpp:(.text+0x438)*: référence indéfinie vers «*ArduiPi_OLED::ArduiPi_OLED()*»
rf95_server.o*: Dans la fonction «*Adafruit_GFX::~Adafruit_GFX()*»*:
rf95_server.cpp:(.text._ZN12Adafruit_GFXD2Ev[_ZN12Adafruit_GFXD5Ev]+0x30)*: référence indéfinie vers «*vtable for Adafruit_GFX*»
rf95_server.o*: Dans la fonction «*ArduiPi_OLED::~ArduiPi_OLED()*»*:
rf95_server.cpp:(.text._ZN12ArduiPi_OLEDD2Ev[_ZN12ArduiPi_OLEDD5Ev]+0x38)*: référence indéfinie vers «*vtable for ArduiPi_OLED*»
collect2: error: ld returned 1 exit status
Makefile:45*: la recette pour la cible «*rf95_server*» a échouée
make: *** [rf95_server] Erreur 1
pierrot@smartidea2:~/Soft/RadioHead/examples/raspi/rf95 $
Donc là, je suis largué particulièrement avec ceci
Citation:
rf95_server.o : Dans la fonction « __static_initialization_and_destruction_0(int, int) » :
rf95_server.cpp:(.text+0x438) : référence indéfinie vers « ArduiPi_OLED::ArduiPi_OLED() »
Comment je peux utilisé une libraiire externe à RadioHead, soit ArduiPI_OLED, pour afficher un paquet Radio sur l'ecran LCD?
Que dois-je faire de plus que d'inclure ArduiPi_OLED?
Code:
1 2 3 4
| #include "ArduiPi_OLED_lib.h"
#include "Adafruit_GFX.h"
#include "ArduiPi_OLED.h"
#include <getopt.h> |
Je vous remercie pour vos lumières