Bonjour,

Je me permets de vous demander de l'aide car je suis en train de créer un module linux et dans ce module j'ai besoin d'utiliser certaines fonctions appartenant à une lib, cette lib est disponible en .a et .so. Lors du lançement du make, il trouve bien la lib mais au moment du linkage il donne des undefined reference pour toutes les fonctions que la lib que j'inclut utilise. Un peu comme s'il avait besoin d'une lib pour faire la lib. Le .a est déjà compilé, je veux juste l'utiliser lors du linkage.

Voici la trace de la compilation :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
aurelien@aurelien:~/Bureau/wii$ make
make -C /lib/modules/2.6.38-8-generic/build M=/home/aurelien/Bureau/wii
make[1]: entrant dans le répertoire « /usr/src/linux-headers-2.6.38-8-generic »
  CC [M]  /home/aurelien/Bureau/wii/wiimote.o
  LD [M]  /home/aurelien/Bureau/wii/wiimoteModule.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "free" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "close" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "__vsnprintf_chk" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "str2ba" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "__errno_location" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "stderr" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "asin" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "ba2str" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "__memcpy_chk" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "__vfprintf_chk" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "bind" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "hci_open_dev" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "hci_close_dev" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "send" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "select" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "socket" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "__fprintf_chk" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "hci_read_remote_name" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "strerror" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "hci_inquiry" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "connect" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "recv" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "hci_devba" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
WARNING: "ioctl" [/home/aurelien/Bureau/wii/wiimoteModule.ko] undefined!
  LD [M]  /home/aurelien/Bureau/wii/wiimoteModule.ko
make[1]: quittant le répertoire « /usr/src/linux-headers-2.6.38-8-generic »
Le makefile :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
CC      := gcc
obj-m += wiimoteModule.o
wiimoteModule-objs := wiimote.o libcwiimote.a
 
default:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD)
 
 
clean:
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
PS : La libcwiimote.a est dans le même répertoire que le makefile.