Bonjour,
J'essaye d’utiliser 433Utils pour piloter des Prises de courant.
Il semble que le signal doit être transmis en 32bit, il est donc nécessaire de modifier la script "codesend.cpp" et le recompiler. C'est là que les problèmes commencent en effet je reçois les messages suivant :
/tmp/cccuYMOs.o: dans la fonction « main »:
telec.cpp:(.text+0x34): référence indéfinie vers « wiringPiSetup »
telec.cpp:(.text+0x70): référence indéfinie vers « RCSwitch::RCSwitch() »
telec.cpp:(.text+0x80): référence indéfinie vers « RCSwitch::enableTransmit(int) »
telec.cpp:(.text+0x98): référence indéfinie vers « RCSwitch::send(unsigned long, unsigned int) »
collect2: ld returned 1 exit status
Dans le langage courant ça veut dire : "Marche po !!!"
Ma question : Mais pourquoi ?
[RESOLU] Compilation ???
Modérateur : Francois
-
- Messages : 63
- Enregistré le : lun. 5 janv. 2015 21:29
[RESOLU] Compilation ???
Modifié en dernier par phdenaujan le lun. 13 avr. 2015 13:51, modifié 1 fois.
Ph.
Re: Compilation ???
Salut,
est-ce que tu as bien installé la bibliothèque WiringPi avant de compiler ton truc ?
Tu la trouveras ici : http://wiringpi.com/download-and-install/
Bon courage
Veloce
est-ce que tu as bien installé la bibliothèque WiringPi avant de compiler ton truc ?
Tu la trouveras ici : http://wiringpi.com/download-and-install/
Bon courage
Veloce
-
- Messages : 63
- Enregistré le : lun. 5 janv. 2015 21:29
Re: Compilation ???
Bonjour,
Oui, elle est installée. Pour ne pas tourner en rond, je suis passé à autre chose. j'y reviendrai plus tard.
Merci.
Oui, elle est installée. Pour ne pas tourner en rond, je suis passé à autre chose. j'y reviendrai plus tard.
Merci.
Ph.
- dbrion0606
- Raspinaute
- Messages : 164
- Enregistré le : ven. 30 janv. 2015 15:51
Re: Compilation ???
Normalement, votre programme n'a pas de problème de Sainte Axe et n'a "qu"'u,n problème d'edition de liens : vous devriez l'invoquer sous la forme :
g++ <nom_du_programme>.cpp -o <nom_du_programme> -lwiringPi
sinon il connaîtra les structures de wiringPi -il les connaît par un include- mais il ne saura pas où trouver les fonctions correspondantes, générant un message d'erreur cryptique. Peut être en est il de même pour la bibliothèque correspondant à RCSswitch?
g++ <nom_du_programme>.cpp -o <nom_du_programme> -lwiringPi
sinon il connaîtra les structures de wiringPi -il les connaît par un include- mais il ne saura pas où trouver les fonctions correspondantes, générant un message d'erreur cryptique. Peut être en est il de même pour la bibliothèque correspondant à RCSswitch?
-
- Administrateur
- Messages : 3234
- Enregistré le : mer. 17 sept. 2014 18:12
- Localisation : Seine et Marne
Re: Compilation ???
Bonjour,
J'utilise cette bibliothèque et je n'ai rencontré aucune difficulté particulière.
N'utilisant pas les ports par défaut de la bibliothèque, j'ai modifié les ports wiringpi dans les fichiers "RFSniffer.cpp", "codesend.cpp" et "send.cpp".
Ensuite, il suffit simplement dans lancer la commande
La compilation se fait toute seule.
J'utilise cette bibliothèque et je n'ai rencontré aucune difficulté particulière.
N'utilisant pas les ports par défaut de la bibliothèque, j'ai modifié les ports wiringpi dans les fichiers "RFSniffer.cpp", "codesend.cpp" et "send.cpp".
Ensuite, il suffit simplement dans lancer la commande
Code : Tout sélectionner
make
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.
- dbrion0606
- Raspinaute
- Messages : 164
- Enregistré le : ven. 30 janv. 2015 15:51
Re: Compilation ???
Bonjour;
une référence indéfinie -chez le posteur- , ça veut dire que la bibliothèque nécessaire n'a pas pu être "linkée" -que ce soit par l'étrange magie d'un Makefile ou par compilation manuelle; ceci peut être dû à
a)un makefile mal écrit (très improbable) ou une invocation manuelle incomplète de gcc/g++ ==> dans les deux cas, savoir comment gcc/g++ a été invoqué est nécessaire (les Makefile -s affichent souvent cette invocation, en sus de messages d'erreur cryptiques).
b) le fait que la bibliothèque nécessaire -en l'occurrence wiringPi - ne soit pas dans un emplacement standard (oubli de sudo make install?) Savoir où est libwiringPi.{so,a} **chez le posteur ** est une question légitime (la question de l'existence est résolue par le fait que les header files sont à la bonne place -sinon, la compilation se serait arrêtée bien avant- : mais de fausses manoeuvres étranges sont possibles ou une problème pour certaines versions, et peut être que le posteur serait heureux que les conséquences en soient réduites).
Chez moi, elle est dans un emplacement standard, ce que j'ai pu vérifier -peut être que ça devrait être la première chose à faire - :
*******************************************
pi@raspberrypi ~/wiringPi $ ls -lrt /usr/lib/libwi*
-rw-r--r-- 1 root root 1004268 mai 2 2012 /usr/lib/libwibble.a #sans objet
lrwxrwxrwx 1 root root 34 f�vr. 27 12:17 /usr/lib/libwiringPi.so -> /usr/local/lib/libwiringPi.so.2.25 # celle dont on a besoin
lrwxrwxrwx 1 root root 37 f�vr. 27 12:17 /usr/lib/libwiringPiDev.so -> /usr/local/lib/libwiringPiDev.so.2.25
**********************************
Edité : naturellement, même si la compilation marche "chez moi", je n'enverrai pas par la poste mon RPi .... chercher des explications à un éventuel dysfonctionnement me semble plus légitime et à terme, moins oiseux.
une référence indéfinie -chez le posteur- , ça veut dire que la bibliothèque nécessaire n'a pas pu être "linkée" -que ce soit par l'étrange magie d'un Makefile ou par compilation manuelle; ceci peut être dû à
a)un makefile mal écrit (très improbable) ou une invocation manuelle incomplète de gcc/g++ ==> dans les deux cas, savoir comment gcc/g++ a été invoqué est nécessaire (les Makefile -s affichent souvent cette invocation, en sus de messages d'erreur cryptiques).
b) le fait que la bibliothèque nécessaire -en l'occurrence wiringPi - ne soit pas dans un emplacement standard (oubli de sudo make install?) Savoir où est libwiringPi.{so,a} **chez le posteur ** est une question légitime (la question de l'existence est résolue par le fait que les header files sont à la bonne place -sinon, la compilation se serait arrêtée bien avant- : mais de fausses manoeuvres étranges sont possibles ou une problème pour certaines versions, et peut être que le posteur serait heureux que les conséquences en soient réduites).
Chez moi, elle est dans un emplacement standard, ce que j'ai pu vérifier -peut être que ça devrait être la première chose à faire - :
*******************************************
pi@raspberrypi ~/wiringPi $ ls -lrt /usr/lib/libwi*
-rw-r--r-- 1 root root 1004268 mai 2 2012 /usr/lib/libwibble.a #sans objet
lrwxrwxrwx 1 root root 34 f�vr. 27 12:17 /usr/lib/libwiringPi.so -> /usr/local/lib/libwiringPi.so.2.25 # celle dont on a besoin
lrwxrwxrwx 1 root root 37 f�vr. 27 12:17 /usr/lib/libwiringPiDev.so -> /usr/local/lib/libwiringPiDev.so.2.25
**********************************
Edité : naturellement, même si la compilation marche "chez moi", je n'enverrai pas par la poste mon RPi .... chercher des explications à un éventuel dysfonctionnement me semble plus légitime et à terme, moins oiseux.
-
- Messages : 63
- Enregistré le : lun. 5 janv. 2015 21:29
Re: Compilation ???
Merci de votre aide.
Ça fonctionne aujourd'hui parfaitement avec une réinstall de l'ensemble des librairies dans "pi".
Cordialement
Ça fonctionne aujourd'hui parfaitement avec une réinstall de l'ensemble des librairies dans "pi".
Cordialement
Ph.