Fermer2
squalylLe 19/04/2012 à 12:04
j'ai un problème à priori idiot.

un projet codeblocks, une application compilée avec mingw, elle est liée à ws2_32 (winsock2)

pas de souci jusque là, c'est bateau.

je mets le code réutilisable dans une lib statique (libmachin.a), qui référence ces fonctions winsock, mais je ne lie PAS cette lib avec winsock.
je mets le main.c dans un autre projet, que je linke avec libmachin.a ET ws2_32.

Et là, il arrive plus à linker a winsock. J'ai des tonnes de:

libmachin.a(daemon.o): In function `do_internal_command':
daemon.c:120: undefined reference to `closesocket@4'
libmachin.a(daemon.o): In function `daemon_init':
daemon.c:186: undefined reference to `WSAStartup@8'
libmachin.a(listener.o): In function `listener_create':
listener.c:41: undefined reference to `getaddrinfo@16'
listener.c:63: undefined reference to `freeaddrinfo@4'

etc etc etc

Donc, il est impossible de reloger des fonctions __stdcall qui sont appelées depuis une lib statique? trifus

je sais pas quoi googler pour trouver des solutions. J'ai essayé plein de trucs, totalement à coté de la plaque.