Probleme lors de programmer Raspberry avec C

Résolu/Fermé
sekmani Messages postés 2 Date d'inscription lundi 31 août 2015 Statut Membre Dernière intervention 5 janvier 2018 - Modifié le 24 juin 2017 à 12:34
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 26 juin 2017 à 12:41
Bonjour, mes chers amis
J'ai essayer de programmer Raspberry avec C utilisent le compilateur Geany et comme premier pas j'ai essayer avec un simple exemple c'est d'allumer une lampe "blinking LED"
dans cette programme j'ai utiliser le bibliotheque bcm2835 et j'ai deja le telecharger et ci-dessous l'imprime ecran qui montre :

http://static.ccm2.net/www.commentcamarche.net/pictures/EMEwWbpgbpKNDQLXuxyzHVrNFbm3Z8j50Wb2xT1Cf3bGufqYROoIYHlAYpn68nuF-capture.png'
total 548
drwxr-xr-x 5 pi pi 4096 Jun 23 13:48 bcm2835-1.38
-rw-r--r-- 1 pi pi 248520 Nov 20 2014 bcm2835-1.38.tar.gz
drwxr-xr-x 5 pi pi 4096 Jun 23 23:27 bcm2835-1.52
-rw-r--r-- 1 pi pi 258007 Mar 2 01:18 bcm2835-1.52.tar.gz
drwxr-xr-x 3 pi pi 4096 Jun 24 00:22 Desktop
drwxr-xr-x 6 pi pi 4096 Jun 22 06:00 Documents
drwxr-xr-x 2 pi pi 4096 Apr 10 10:10 Downloads
-rw-r--r-- 1 pi pi 333 Jun 23 03:24 Led.py
drwxr-xr-x 2 pi pi 4096 Apr 10 10:10 Music
drwxr-xr-x 2 pi pi 4096 Apr 10 10:10 Pictures
drwxr-xr-x 2 pi pi 4096 Apr 10 10:10 Public
drwxr-xr-x 2 pi pi 4096 Jun 22 09:34 python_games
-rw-r--r-- 1 pi pi 625 Jun 23 04:34 Simple.py
drwxr-xr-x 2 pi pi 4096 Apr 10 10:10 Templates
drwxr-xr-x 2 pi pi 4096 Apr 10 10:10 Videos


lorsque j'ai essayer de programmer et après le compiler m'a détecter quelques erreurs : il me dit que le bcm2835 ne présente aucune fonction voila ci dessous le programme et les erreurs
http://static.ccm2.net/www.commentcamarche.net/pictures/bqXZfFUhrNGw3m7OwjjN2FkmaZHmZAauZhPZVk094KtUCKue3fjZXyWJS2CsLcQr-kmcs4.png

#include <stdio.h>
#include <bcm2835.h>
#define LED RPI_GPIO_P1_11
int main(int argc, char **argv)
{
if(!bcm2835_init())
return 1;


bcm2835_gpio_fsel(LED, BCM2835_GPIO_FSEL_OUTP);
unsigned int del=1000;
while(1)
{
bcm2835_gpio_set(LED);
bcm2835_delay(del);
bcm2835_gpio_clr(LED);
bcm2835_delay(del);
}

}

http://static.ccm2.net/www.commentcamarche.net/pictures/4rGMQlmh83dnNQEIZdvvSdT3YBPdfU2UEUpdbsWWgjcizgQKm682902NclmqAemf-opvby.png

gcc -Wall -o "VivexProject" "VivexProject.c" (in directory: /home/pi/Desktop)
/tmp/ccVZr4Pj.o: In function `main':
VivexProject.c:(.text+0x14): undefined reference to `bcm2835_init'
VivexProject.c:(.text+0x34): undefined reference to `bcm2835_gpio_fsel'
VivexProject.c:(.text+0x44): undefined reference to `bcm2835_gpio_set'
VivexProject.c:(.text+0x4c): undefined reference to `bcm2835_delay'
VivexProject.c:(.text+0x54): undefined reference to `bcm2835_gpio_clr'
VivexProject.c:(.text+0x5c): undefined reference to `bcm2835_delay'
Compilation failed.
collect2: error: ld returned 1 exit status

Merci de m'aider a resolue cette probleme et merci d'avance
A voir également:

2 réponses

[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
26 juin 2017 à 10:16
Salut sekmani,

Tu n'as pas correctement installé la bibliothèque, ou ta commande de compilation ne comporte pas l'indication de la bibliothèque.

https://raspberry-projects.com/pi/programming-in-c/io-pins/bcm2835-by-mike-mccauley


Dal
0
YCN- Messages postés 116 Date d'inscription mercredi 24 juin 2015 Statut Membre Dernière intervention 13 juillet 2017 12
26 juin 2017 à 10:19
Bonjour,

Bon déjà Geany est un IDE pas un compilateur, ton compilateur c'est gcc. Ensuite dans ce genre de cas il va te manquer les flags de la librairie, ici il faut que tu ajoutes à ta compilation :
-lbcm2835
Ce qui va donner :
gcc -Wall -o VivexProject VivexProject.c -lbcm2835

Cependant je te recommande l'usage de WiringPi si tu es un débutant qui est une librairie très complète et très simple d'usage.
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
26 juin 2017 à 12:41
Si sekmani ne sait pas compiler une bibliothèque ou paramétrer son projet pour l'utiliser, il ne sera pas plus avancé en changeant de bibliothèque, il me semble ;-)

Le lien que j'ai donné explique comment faire un Makefile qui sera utilisé par Geany pour que ce flag soit utilisé, outre la méthode pour compiler et installer la bibliothèque.

Sinon, pour que les paramètres de compilation soient gérés par Geany, il faut créer un projet Geany, par le menu Projet (et non pas juste un fichier), et adapter les propriétés du projet par le menu "Projet - Propriétés - Construire".... ce n'est pas forcément plus facile que de faire un Makefile.
0