Utilisation de lib dynamique lors de la création d'un module
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:
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:
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.