Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 24/01/2013, à 10:32

MacArony

K8055 - Board de développement Velleman

Bonjour, j'utilise Code Blocks avec ubuntu 12.04. Je tente désespérément de programmer la board. J'ai bien suivis le tutoriel d'installation sur la doc.ubu/k8055 et le programme de test fournis avec la lib fonctionne correctement, mais dès que je passe avec Code Blocks c'est le drame ! Une erreur sauvage apparaît mad :

/usr/local/lib/libk8055.so||undefined reference to `sqrtf'|

Pourriez-vous m'aider ? Merci d'avance.

Edit : Je précise que j'ai bien googlé comme il faut, même sur des sites anglophones cool Mais le soucis c'est que il faut que je foute «-lm» dans la ligne de compilation mais je préférerai utiliser Code::Blocks quoi ! C'est normal, le GUI c'est juste fantastique ;-)

Dernière modification par MacArony (Le 24/01/2013, à 10:35)


Psycho$PATH !
Jbois du whitespirit au ptit dej et J'aime les Japonaises
J'ai un micropenis mais j'assume
J'ai fait un doigt d'honneur à Dark Vador...enfin, j'ai essayé...

Hors ligne

#2 Le 24/01/2013, à 10:53

telliam

Re : K8055 - Board de développement Velleman

je vois pas le lien entre code::Blocks et le -lm, pour résoudre cette irrésolu, il faut effectivement que tu linkes avec la lib math.
dans code::blocks tu dois surement avoir qq part un endroit ou tu px indiquer les librairies dynamiques que tu vx utiliser.
ca doit ressembler a un truc de ce genre :
http://stackoverflow.com/questions/5862 … codeblocks


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#3 Le 24/01/2013, à 10:54

claudius01

Re : K8055 - Board de développement Velleman

Bonjour MacArony,

Je te propose d'ajouter à l'édition de lien l'option suivante (si cela n'est pas déjà fait)

-lm

cf. undefined reference to sqrtf qui ressemble à ton problème


Cordialement, A+
--
Claudius

En ligne

#4 Le 24/01/2013, à 11:25

MacArony

Re : K8055 - Board de développement Velleman

Aaaaaah mais justement CCM c’était le premier résultat et il ne résout pas plus le problème. Et puis j'ai un peu cherché quand même.
Peut-être alors que je n'ai pas la bonne bibliothèque ?

#include <string.h>
#include <stdio.h>
#include <usb.h>
#include <assert.h>
#include <sys/time.h>
#include <math.h>
#include "k8055.h"

#define STR_BUFF 256
#define false 0
#define true 1

int main()
{
    printf("Hello world!\n");
    WriteAllDigital(12);
    return 0;
}

Voilà le code source du main.c pour allumer les diodes 3 et 4 par exemple en plus du hello dans le terminal.

Dernière modification par MacArony (Le 24/01/2013, à 11:32)


Psycho$PATH !
Jbois du whitespirit au ptit dej et J'aime les Japonaises
J'ai un micropenis mais j'assume
J'ai fait un doigt d'honneur à Dark Vador...enfin, j'ai essayé...

Hors ligne

#5 Le 24/01/2013, à 11:52

MacArony

Re : K8055 - Board de développement Velleman

telliam a écrit :

je vois pas le lien entre code::Blocks et le -lm, pour résoudre cette irrésolu, il faut effectivement que tu linkes avec la lib math.
dans code::blocks tu dois surement avoir qq part un endroit ou tu px indiquer les librairies dynamiques que tu vx utiliser.
ca doit ressembler a un truc de ce genre :
http://stackoverflow.com/questions/5862 … codeblocks

C'est déjà le cas.


Psycho$PATH !
Jbois du whitespirit au ptit dej et J'aime les Japonaises
J'ai un micropenis mais j'assume
J'ai fait un doigt d'honneur à Dark Vador...enfin, j'ai essayé...

Hors ligne

#6 Le 24/01/2013, à 12:40

telliam

Re : K8055 - Board de développement Velleman

tu l'as bien mis en premier?


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#7 Le 24/01/2013, à 12:43

telliam

Re : K8055 - Board de développement Velleman

c'est une carte qui nécessite un compilo croisé ou pas?


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#8 Le 24/01/2013, à 12:50

MacArony

Re : K8055 - Board de développement Velleman

ah non pas de cross-compilo vu que c'est juste une «extension» et le programme s’exécute sur le pc.
Et oui il est en premier (deuxième ou troisième c'est la même chose.)


Psycho$PATH !
Jbois du whitespirit au ptit dej et J'aime les Japonaises
J'ai un micropenis mais j'assume
J'ai fait un doigt d'honneur à Dark Vador...enfin, j'ai essayé...

Hors ligne

#9 Le 24/01/2013, à 13:00

telliam

Re : K8055 - Board de développement Velleman

est ce que tu passes des options de compilation ou linker particulieres?
px tu mettre le log de compilation?


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#10 Le 24/01/2013, à 14:35

MacArony

Re : K8055 - Board de développement Velleman

-------------- Build: Debug in vellman_test ---------------

Linking console executable: bin/Debug/vellman_test
/usr/local/lib/libk8055.so: undefined reference to `sqrtf'
collect2: ld a retourné 1 code d'état d'exécution
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings
 

Psycho$PATH !
Jbois du whitespirit au ptit dej et J'aime les Japonaises
J'ai un micropenis mais j'assume
J'ai fait un doigt d'honneur à Dark Vador...enfin, j'ai essayé...

Hors ligne

#11 Le 24/01/2013, à 14:41

telliam

Re : K8055 - Board de développement Velleman

tu as pas moyen d'afficher la ligne de compilation?


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#12 Le 24/01/2013, à 14:57

MacArony

Re : K8055 - Board de développement Velleman

J'ai trouvé commentl'afficher :

-------------- Build: Debug in vellman ---------------

[ 50,0%] gcc -Wall  -g     -c /home/macarony/Projet_codeblocks/vellman/main.c -o obj/Debug/main.o
[100,0%] g++  -o bin/Debug/vellman obj/Debug/main.o    -lm -lk8055 -lusb 
/usr/local/lib/libk8055.so: undefined reference to `sqrtf'
collect2: ld a retourné 1 code d'état d'exécution
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings
 

Dernière modification par MacArony (Le 24/01/2013, à 14:58)


Psycho$PATH !
Jbois du whitespirit au ptit dej et J'aime les Japonaises
J'ai un micropenis mais j'assume
J'ai fait un doigt d'honneur à Dark Vador...enfin, j'ai essayé...

Hors ligne

#13 Le 24/01/2013, à 15:14

claudius01

Re : K8055 - Board de développement Velleman

Re MacArony et mille excuses pour ma 1ère réponse ;-)

Que donne le résultat de la commande :

$ ldd /usr/local/lib/libk8055.so

Cordialement, A+
--
Claudius

En ligne

#14 Le 24/01/2013, à 15:23

telliam

Re : K8055 - Board de développement Velleman

pquoi tu utilises g++ pour linker et pas gcc?


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#15 Le 24/01/2013, à 15:58

MacArony

Re : K8055 - Board de développement Velleman

claudius01 a écrit :

Re MacArony et mille excuses pour ma 1ère réponse ;-)

Que donne le résultat de la commande :

$ ldd /usr/local/lib/libk8055.so

Cordialement, A+
--
Claudius

Pas de soucis ;-)
voila le retour :

linux-gate.so.1 =>  (0xb77d7000)
	libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb760d000)
	/lib/ld-linux.so.2 (0xb77d8000)

Psycho$PATH !
Jbois du whitespirit au ptit dej et J'aime les Japonaises
J'ai un micropenis mais j'assume
J'ai fait un doigt d'honneur à Dark Vador...enfin, j'ai essayé...

Hors ligne

#16 Le 24/01/2013, à 16:02

MacArony

Re : K8055 - Board de développement Velleman

telliam a écrit :

pquoi tu utilises g++ pour linker et pas gcc?

Dans la config j'ai bien gcc pour le C et g++ pour le C++

Je rappelle que la compilation en ligne de commande fonctionne quand on génère le binaire de test (cf la doc) or en codant sur codeblocks j'ai cette erreur.


Psycho$PATH !
Jbois du whitespirit au ptit dej et J'aime les Japonaises
J'ai un micropenis mais j'assume
J'ai fait un doigt d'honneur à Dark Vador...enfin, j'ai essayé...

Hors ligne

#17 Le 24/01/2013, à 16:53

telliam

Re : K8055 - Board de développement Velleman

je commence a me souvenir pourquoi je déteste codeblocks;)
regarde la config pour le linker, il y a peut etre un config différente


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#18 Le 24/01/2013, à 16:58

MacArony

Re : K8055 - Board de développement Velleman

J'ai pas compris : la config pour le linker.

Bin je vois pas pourquoi on devrait le détester, c'est trés bien, surtout que sinon c'est WIndowsXP avec C++ builder 5 or vu que je débute autant commencer sur un outil libre et surtout convivial.

Dernière modification par MacArony (Le 24/01/2013, à 17:01)


Psycho$PATH !
Jbois du whitespirit au ptit dej et J'aime les Japonaises
J'ai un micropenis mais j'assume
J'ai fait un doigt d'honneur à Dark Vador...enfin, j'ai essayé...

Hors ligne

#19 Le 24/01/2013, à 17:59

claudius01

Re : K8055 - Board de développement Velleman

Re,

MacArony a écrit :

Je rappelle que la compilation en ligne de commande fonctionne quand on génère le binaire de test (cf la doc) or en codant sur codeblocks j'ai cette erreur.

Il faut donc trouver quelle lib (dynamique ou statique) "tire" la méthode 'sqrtf' lorsque l'environnement "codeblocks" est utilisé...

Utiliser pour cela la commande 'nm'

$ nm <fichier_lib> | egrep sqrtf

sur toutes les lib sensée être utilisées en commençant par 'libk8055.so', même si je pense qu'elle n'est pas concernée (à confirmer/infirmer)


Cordialement, A+
--
Claudius

Dernière modification par claudius01 (Le 24/01/2013, à 21:37)

En ligne

#20 Le 24/01/2013, à 18:30

telliam

Re : K8055 - Board de développement Velleman

vu la trace d'erreur du linker : il y a des chances que l'irresolu soit dans libk8055.so. mais effectivement ça fait pas de mal de vérifier avec nm
la libk8055.so vient d'un package ou tu l'as compilé toi meme ?


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#21 Le 24/01/2013, à 23:27

MacArony

Re : K8055 - Board de développement Velleman

J'ai ceci !

nm "/usr/local/lib/libk8055.so" | egrep sqrtf
         U sqrtf

À quoi correspong le "U sqrtf" ? Je sais pas...


Psycho$PATH !
Jbois du whitespirit au ptit dej et J'aime les Japonaises
J'ai un micropenis mais j'assume
J'ai fait un doigt d'honneur à Dark Vador...enfin, j'ai essayé...

Hors ligne

#22 Le 24/01/2013, à 23:29

telliam

Re : K8055 - Board de développement Velleman

ca veut dire unresolved, ça confirme bien que le symbole est irrésolu dans la lib k8055.so
peux tu faire la meme manip sur libm.so ?


"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard

Hors ligne

#23 Le 25/01/2013, à 00:13

claudius01

Re : K8055 - Board de développement Velleman

Bingo,

- C'est donc bien '/usr/local/lib/libk8055.so' (autant pour moi ;-) qui a besoin de la méthode 'sqrtf()' qui normalement est fourni par 'libm.so' (à confirmer)
- Maintenant si l'édition de lien fonctionne lorsque "...en ligne de commande fonctionne quand on génère le binaire de test... " et que donc l'option "-lm" est indispensable pour que cette lib 'libm.so' (à localiser) soit prise en compte, c'est peut être l'ordre de déclaration des options du link dans la commande générée par 'codeblocks' qui est à revoir; à savoir :

g++  -o  bin/Debug/vellman    obj/Debug/main.o    -lm    -lk8055   -lusb

Essayer, si c'est possible, de mettre '-lm' derrièrre '-lk8055' :

g++  -o  bin/Debug/vellman    obj/Debug/main.o    -lk8055  -lm   -lusb

Cela ne coûte rien et peut rapporter gros...


Cordialement, A+
--
Claudius

Dernière modification par claudius01 (Le 25/01/2013, à 00:18)

En ligne

Haut de page ↑