Undefined reference to '...' sous codeblocks

Fermé
lyne690 - 16 déc. 2009 à 23:26
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 17 déc. 2009 à 09:46
Bonjour,
J'ai un projet à faire avec la console WII et dès le démarrage ça bloque! J'utilise la bilbiothèque wiiuse téléchargée sur le site suivant : http://ww1.wiiuse.net/?nav=api#winbt

J'ai bien linker wiiuse à mon projet, j'ai bien sélectionné le debug et release mais ça ne fonctionne toujours pas et ça m'affiche ce message d'erreur :
undefined reference to '_imp__wiiuse_init'
=== Build finished: 1 errors, 0 warnings ===

Voici mon code sous code blocks
#include <stdio.h>
#include <stdlib.h>
#include "wiiuse.h"

#define MAX_WIIMOTES 1

int main()
{
wiimote** wiimotes;

wiimotes = wiiuse_init(MAX_WIIMOTES);
return 0;
}

Il n'y a pas plus simple comme code mais ça ne marche pas :'( S'il vous plaît aidez moi. Merci d'avance
A voir également:

6 réponses

mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 7 804
16 déc. 2009 à 23:32
Ben tu as dû oublier de linker dans ton projet avec la librairie en question, non ?

Bonne chance
1
lyne690 Messages postés 2 Date d'inscription mercredi 16 décembre 2009 Statut Membre Dernière intervention 17 décembre 2009
16 déc. 2009 à 23:43
Oui je m'en suis rendu compte une fois le message envoyé, merci quand même.
J'ai une nouvelle erreur tu peux peut-être m'aider lol maintenant il m'affiche :

File Line Message
ld.exe cannot find -lwiiuse.lib

Dans mes fichiers je n'ai aucune librairie de ce nom, je ne comprends d'où ça sort... merci
0
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 7 804
16 déc. 2009 à 23:48
Bah moi la compilation sous windows c'est pas trop mon truc mais dans gcc, l'option -l attend des librairies dynamtiques (.so sous linux, .dll sous windows). Par exemple pour linker avec /usr/lib/libm.so sous linux on passe l'option -lm.

Une librairie statique (.a sous linux et j'imagine .lib sous windows ?) est passée au même titre que les ".o" finaux, lors de la compilation de l'exécutable final.

En l'occurrence j'ai l'impression que tu passes une librairie statique à ton compilateur comme une librairie dynamique. Si sous linux j'aurais pu être catégorique, comme je ne connais pas les conventions windows, je ne peux pas trop te dire si tu fais fausse route ou pas.

Bonne chance
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
17 déc. 2009 à 09:42
C'est pas tout les jours, mais je peux corrigé Mamiemando. :-p
-l avec gcc sous Linux comme sous Windows sert à lier des bibliothèques dynamique OU statique. (mais il est en effet possible de donner directement le nom de la bibliothèque statique)
Sous windows, les bibliothèques dépendent du compilateur utilisé, avec gcc, c'est comme sous linux libXXX.a les .lib c'est pour le compilo crosoft, je crois qu'on ne peux pas les mélanger.
0
lyne690 Messages postés 2 Date d'inscription mercredi 16 décembre 2009 Statut Membre Dernière intervention 17 décembre 2009
17 déc. 2009 à 00:40
merci,
en faite cela m'étonne car lorsque j'ajoute la libraire à mon projet, je ne peux ajouter que des librairie statiques (.lib .so etc...) les dll ne sont pas acceptées. Je ne peux donc pas passer une libraire statique à la place d'une dynamique.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33401 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 28 novembre 2024 7 804
17 déc. 2009 à 00:45
Un .so c'est une librairie dynamique (au moins sous linux) et ça se passe à la phase de linkage avec l'option -l.
Un .a c'est un librairie statique et ça se passe au linkage avec les autres librairies et les .o, sans option.

Pour les .dll et les .lib, je suppose que ce sont des équivalents windows mais je ne sais pas trop comment ça s'utilise.
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
17 déc. 2009 à 09:46
Petit point sur les DLL.
Si j'ai bien compris, avec gcc sous windows les dll doivent avoir des fichiers associé, un libXXX.a et un .def (moins sur pour le .def). On fourni alors le .a lors de l'édition des liens et il se démerde tout seul (normalement) pour lier dynamiquement avec la bibliothèque.
Attention au compilateur ! Lequel utilises tu ?
0