Pages: [1]   Go Down
Author Topic: Inclusion d'une librairie arduino dans un fichier .cpp  (Read 618 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 3
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Je me heurte à une difficulté... Je suis en train de développer un projet arduino et plutôt que de séparer simplement le code en fichiers .ino, j'ai voulu créer des fichiers .cpp et .h pour les différents "thèmes" du programme.
Dans un de ces "thèmes", je désire contrôler un écran LCD. Mon programme de test fonctionne très bien en tant que sketch unique, mais quand je mets le code dans le .cpp, impossible d'inclure la librairie LiquidCrystal.h. :

Code:
#include <LiquidCrystal.h>
Code:
lcd_2x16.cpp:7:27: fatal error: LiquidCrystal.h: Aucun fichier ou dossier de ce type
compilation terminated.

Si je fais ainsi, c'est mieux, mais la fonction n'est pas reconnue...

Code:
#include "/usr/share/arduino/libraries/LiquidCrystal/LiquidCrystal.h"

int rs = 22;
int rw = 24;
int enable = 26;
int d4 = 39;
int d5 = 41;
int d6 = 43;
int d7 = 45;
LiquidCrystal lcd(rs, rw, enable, d4, d5, d6, d7);

Code:
lcd_2x16.cpp.o: In function `global constructors keyed to lcd':
lcd_2x16.cpp:11: undefined reference to `LiquidCrystal::LiquidCrystal(unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char, unsigned char)'
collect2: ld returned 1 exit status

Une idée ?
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 224
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Si j'ai bien compris, tu inclus le fichier LiquidCrystal.h dans le fichier cpp de la bibliothèque ?

J'avais constaté un problème de link il y a quelques temps. Je ne sais pas s'il a été résolu dans la version 1.0.1 mais tu peux essayer d'inclure LiquidCrystal dans ton cpp ET dans le sketch.
Logged


Moselle (FR)
Online Online
God Member
*****
Karma: 6
Posts: 898
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut à tous,

Salut,
Si j'ai bien compris, tu inclus le fichier LiquidCrystal.h dans le fichier cpp de la bibliothèque ?
J'avais constaté un problème de link il y a quelques temps. Je ne sais pas s'il a été résolu dans la version 1.0.1 mais tu peux essayer d'inclure LiquidCrystal dans ton cpp ET dans le sketch.

Je fais quelque chose de similaire pour un lcd via I2C et pour que cela fonctionne, il me faut #include <Wire.h> dans le ino et le cpp.
@+
Logged

2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Tu utilise l'ide arduino pour éditer ton fichier .cpp ?
C'est peut être lui qui vient tout foutre en l'air ?
Vu que normalement l'ide concatène chaque fichier dans un gros fichier .cpp global avant de compiler.

Si tu migre tes fichiers .cpp et .h dans le dossier "libraries" est ce que tu as toujours la même erreur (ne pas oublier l'include de Arduino.h) ?
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Pages: [1]   Go Up
Jump to: