#1 Le 15/06/2008, à 00:42
- Aquanum
[résolu] Installation et utilisation de libwiimote-0.4
Bonsoir,
Je suis sous Ubuntu et je cherche à manipuler ma manette de wii avec la bibliothèque libwiimote. Le paquet libwiimote présent sur Synaptic est assez ancien (version 0.2) mais j'arrive tout de même à exécuter des programmes simples. Cependant je ne bénéficie pas de toutes les fonctionnalités présentes dans la 0.4. J'ai alors essayé de me installer la dernière version moi même.
Je décompresse mon .tgz dans mon répertoire /media/E/dev/lib/libwiimote-0.4 (E est un gros disque dur où je place un peu tout et nimporte quoi, ce n'est pas mon système de fichiers)
Je me mets dans /media/E/dev/lib/libwiimote-0.4 et je fais:
autoconf
./configure
make
sudo make install
Des fichiers ont bien été déplacés dans usr/local/include et usr/local/lib.
Je retourne alors dans Eclipse et j'ajoute cwiimote à la liste des Libraries.
J'essaye de mettre en "Library search path"
/usr/local/lib
/usr/local/include/libcwiimote-0.4.0/libcwiimote
/usr/local/include
...
mais ça n'y change rien... j'ai toujours des "déclaration implicite de la fonction ..." sur les fonctions de la bibliothèque libwiimote.
Je remarque également qu'en essayant d'exécuter les binaires exemples de la lib présents sur /media/E/dev/lib/libwiimote-0.4/bin je reçois le message suivant:
error while loading shared libraries: libcwiimote.so: cannot open shared object file: No such file or directory
Donc je galère sur ça depuis des heures, je fouine partout à la recherche d'informations. Mais je trouve très très peu de choses en raison du peu de documentation sur la lib. Donc mon problème doit certainement se trouver dans ma manière d'installer la library ou bien de la linker... Je débute encore avec linux. J'aurais aimé savoir si quelqu'un pouvait m'aider ou me conseiller, je vous en serais très reconnaissant.
Merci d'avance
Aquanum
Dernière modification par Aquanum (Le 19/06/2008, à 17:20)
Hors ligne
#2 Le 15/06/2008, à 21:42
- robrob
Re : [résolu] Installation et utilisation de libwiimote-0.4
Pour la deuxième erreur ça vient du fait que /usr/local/lib n'est pas dans le path par défaut des bibliothèques.
Une solution pas clean serait d'installer la bibliothèque dans /usr plutôt que /usr/local
Une solution lourde, c'est de faire un export qui va bien (je ne me souviens plus de la commande) avant de lancer ton prog.
A mon avis, la solution la plus efficage à ce problème c'est d'ajouter /usr/local/lib au path des bibliothèques:
1 - modifier le fichier /etc/ld.so.conf et y ajouter /usr/local/lib
(exemple de mon ld.so.conf)
include /etc/ld.so.conf.d/*.conf
/usr/local/lib/
2 - lancer un ldconfig (en root) pour prendre en compte la modification
Pour le pb avec eclipse aucune idée en revanche mais à priori le bon path à ajouter serait plutôt:
/usr/local/include/libcwiimote-0.4.0
Dernière modification par robrob (Le 16/06/2008, à 18:16)
Hors ligne
#3 Le 16/06/2008, à 17:36
- Aquanum
Re : [résolu] Installation et utilisation de libwiimote-0.4
Salut,
Merci robrob pour ton aide.
Alors j'ai été voir dans /etc/ld.so.conf et j'y trouve include /etc/ld.so.conf.d/*.conf
Je vais donc voir dans le dossier ld.so.conf.d qui contient le fichier libc.conf avec la ligne suivante : /usr/local/lib
Donc si j'ai bien compris j'ai à priori déjà la configuration que tu sembles me faire installer.
Donc c'est très étrange. Sinon j'ai fait ce que tu me disais, et ça n'a rien changé.
Sinon, j'ai quand même réussi à bidouiller mon code et réussi à utiliser à 100% la manette avec la librairie. Donc je suis bien content
Toute fois il y a certains points qui ne me semblent pas très propres. Donc déjà pour d'éventuelles personnes qui seraient dans mon cas, il faut utiliser les options de compilation suivantes:
-lcwiimote -lbluetooth -lm
-D_ENABLE_TILT -D_ENABLE_FORCE
De plus, j'ai réussi à m'en sortir en déclarant les .h avec leur chemin global
#include "/usr/local/include/libcwiimote-0.4.0/libcwiimote/wiimote.h"
#include "/usr/local/include/libcwiimote-0.4.0/libcwiimote/wiimote_api.h"
Ca fonctionne, mais c'est pas super portable ...
En spécifiant le Library search path à /usr/local/include/libcwiimote-0.4.0/libcwiimote/ il ne veut pas compiler ... seul le chemin en brut dans le code fonctionne.
Donc je me demande si quelqu'un aurait une idée pour avoir un truc plus propre et portable.
En vous remerciant d'avance
Aqua
Dernière modification par Aquanum (Le 19/06/2008, à 17:19)
Hors ligne
#4 Le 16/06/2008, à 18:15
- robrob
Re : [résolu] Installation et utilisation de libwiimote-0.4
Alors j'ai été voir dans /etc/ld.so.conf et j'y trouve include /etc/ld.so.conf.d/*.conf
Je vais donc voir dans le dossier ld.so.conf.d qui contient le fichier libc.conf avec la ligne suivante : /usr/local/lib
Bizare, que ce soit sous debian etch ou sous Feisty je n'ai pas /usr/local/lib
Donc si j'ai bien compris j'ai à priori déjà la configuration que tu sembles me faire installer.
Donc c'est très étrange. Sinon j'ai fait ce que tu me disais, et ça n'a rien changé.
J'avais oublié de le préciser mais ldconfig doit être lancée en root.
-lcwiimote -bluetooth -m
-D_ENABLE_TILT -D_ENABLE_FORCE
Ce serait pas -lbluetooth et -lm plutôt?
En tout cas ça n'a rien d'extravagant comme flag, c'est même tout à fait normal.
De plus, j'ai réussi à m'en sortir en déclarant les .h avec leur chemin global
#include "/usr/local/include/libcwiimote-0.4.0/libcwiimote/wiimote.h"
#include "/usr/local/include/libcwiimote-0.4.0/libcwiimote/wiimote_api.h"
J'utiliserai plutôt:
#include <libcwiimote/wiimote.h>
#include <libcwiimote/wiimote_api.h>
avec -I/usr/local/include/libcwiimote-0.4.0 comme flag de compilation (-I permet d'indiquer des chemins supplémentaires pour les fichiers d'include)
Dernière modification par robrob (Le 16/06/2008, à 18:17)
Hors ligne
#5 Le 19/06/2008, à 17:19
- Aquanum
Re : [résolu] Installation et utilisation de libwiimote-0.4
J'avais oublié de le préciser mais ldconfig doit être lancée en root.
C'est effectivement ce que j'avais fait. De toute manière ça ne passe pas si on ne se place pas en root ^^
Ce serait pas -lbluetooth et -lm plutôt?
En tout cas ça n'a rien d'extravagant comme flag, c'est même tout à fait normal.
Effectivement c'est une erreur d'étourderie de ma part dans mon post. Je corrige ça
Sinon un GRAND merci pour ton conseil de flag de compilation. Ça marche à merveille ! Mon code est désormais portable :]
Maintenant je n'ai plus qu'à me trouver une idée de programme a réaliser avec ma manette de Wii
Hors ligne