Pages: [1]   Go Down
Author Topic: undefined reference to `__cxa_guard_acquire'  (Read 1042 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Edison Member
*
Karma: 9
Posts: 1617
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour,
j'ai trouvé un ino afin de piloter une raquette (non, pas de tennis) EQ5 d'astronomie
https://github.com/TCWORLD/AstroEQ

par contre j'ai une erreur à la compile, et malgré mes recherches, je ne comprends pas trop ce qu'il veut dire par :
//Create an instance of the mount
ce qui provoquerait l'erreur suivante

Quote
AstroEQ5.cpp.o: In function `setup':
AstroEQ5.cpp:212: undefined reference to `__cxa_guard_acquire'
AstroEQ5.cpp:214: undefined reference to `__cxa_guard_release'

merci d'avance pour vos lumières astrales smiley
Logged

Ales
Offline Offline
Faraday Member
**
Karma: 29
Posts: 3173
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

L'instanciation est un concept de programmation, très utile avec les librairie puisqu'il te permet de l'utiliser plusieurs fois. Par exemple, si tu utilise la librairie stepper pour les moteurs pas à pas, il y a une instanciation au début où tu définis ton moteur :
Code:
Stepper myStepper = Stepper(100, 5, 6);

Tu as instancié "myStepper", mais rien ne t'empêche ici de rajouter d'autres moteurs,

Code:
Stepper myStepper = Stepper(100, 5, 6);
Stepper myStepper2 = Stepper(100, 7, 8);
// et je leur fait faire un tour
myStepper.step(100);
myStepper2.step(100);

Logged


France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3009
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Le message fait penser à une librairie manquante ou à un fichier manquant dans une librairie.
Logged

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

Bonjour,

Il doit y avoir un "static" quelque pars dans la librairie qui n'est pas à sa place.

Cf :
http://arduino.cc/forum/index.php?topic=47304.0
Logged

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

Offline Offline
Edison Member
*
Karma: 9
Posts: 1617
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

vi j'avais lu ce topic déjà et comme beaucoup en virant le static de

Quote
void loop(){
  static unsigned long lastMillis = millis();
static   boolean isLedOn = false;

effectivement plus d'erreur, mais ca ne doit pas être une solution fiable je pense
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Surtout ca ne fait plus ce que c'est sensé faire

Quand les variables lastMillis et isLedOn sont déclarées static, leur valeur est conservée entre 2 appels à loop.
Si tu vire static ce n'est plus le cas.

La bonne solution est de virer static et de déplacer ces variables en tant que globales a l'extérieur de loop.

Une variable statique d'une fonction est équivalent d'un point de vue stockage/mémoire à une variable globale mais sa portée est limitée à la fonction dans laquelle elle est déclarée. C'est à dire que personne d'autre ne peut y accéder que le code de la fonction.
Une variable globe est accessibles par tout le monde.

Si tu décide de ne pas accéder à une variable globale que a partir d'une fonction donnée, ca revient au même.

Dernière différence: 2 fonctions toto() et tata() peuvent chacune avoir une variable static int titi; qui sont 2 varaibles différentes.
par contre si tu les sorts en variables globales cette distinction n'existe plus. Par sécurité appeller alors les variables toto_toto et tata_titi

Mais où va t'il chercher des noms aussi débiles... Pauvre Barbudor


Le topic du forum donné en référence par Skywood semble pourtant dire qu'il n'y a pas de problème avec les variables statiques scalaires, uniquement avec les objets composés (compound = classes ou structures). Il est suggéré que ce soit un bug du compil avr-gcc car ceci mis a part cette syntaxe est parfaitement légale.

A essayer.... mais là c'est trop tard pour lancer l'IDE. Bonne nuit smiley-wink (Skywodd, bosse tes partiels !)
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

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

Le topic du forum donné en référence par Skywood semble pourtant dire qu'il n'y a pas de problème avec les variables statiques scalaires, uniquement avec les objets composés (compound = classes ou structures). Il est suggéré que ce soit un bug du compil avr-gcc car ceci mis a part cette syntaxe est parfaitement légale.
Dans le pire des cas une petite màj de avr-gcc ne peut faire que du bien smiley-wink

cf http://skyduino.wordpress.com/2012/07/07/hack-utiliser-teensyduino-avec-une-carte-arduino-leonardo-ou-compatible-leonardo/
(point n°1, 2 et 3)

A essayer.... mais là c'est trop tard pour lancer l'IDE. Bonne nuit smiley-wink (Skywodd, bosse tes partiels !)
Mais heu ! Je bosse, je bosse smiley-mr-green
Logged

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

Offline Offline
Edison Member
*
Karma: 9
Posts: 1617
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

alors, ce matin entre 2 coups de téléphone, j'ai mis les 2 lignes incriminées en début comme des variables normales.
plus d'erreur, mais est ce aussi suite à la maj de mon nunux hier soir en 12.04 au lieu de 10.10 (que j'aurai pas du faire d'ailleurs, unity une vraie daube)

edit, c'est quoi windaub? car le lien de sky va pour du windaub smiley pas du nunux
Logged

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

edit, c'est quoi windaub? car le lien de sky va pour du windaub smiley pas du nunux
Ha ben si Monsieur est manchot il peut aller ce jeter par la fenêtre smiley-mr-green
(le troll c'est 'dredi ! Nan mais ho smiley-lol)
Logged

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

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 23
Posts: 2054
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Un pingouin manchot ?
Rien ne va plus
C'est merdredi

smiley-lol => []
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Edison Member
*
Karma: 9
Posts: 1617
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

héhé    smiley-mr-green
Logged

Leeds, UK
Offline Offline
Edison Member
*
Karma: 71
Posts: 1641
Once the magic blue smoke is released, it won't go back in!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

As I wrote the AstroEQ code, I thought I should offer my assistance in solving the issue. Unfortunately I don't speak French.
Logged

~Tom~

Pages: [1]   Go Up
Jump to: