Bonjour a tous,

Voila, j'ai une erreur étrange de "Undefined reference to memcpy()".
Pour info, je l'utilise pour copier des données depuis un socket...

Donc je ne comprends pas vraiment d'ou vient le problème. Puisque je pense avoir fait les bons include.
Voici mes includes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
#include <winsock2.h>
#include <stdio.h>
#include <string.h>
Rien de bien sorcier...
De plus pour ma librairie, j'ai juste un fichier .h et un .c

Je compile avec MinGW (donc gcc) sous Windows.
Il s'agit de compiler une librairie statique. Voici le makefile :
J'avoue ne pas être expert en Makefile mais je pense que ce que j'ai fait reviens à une compilation normale : jusqu'a l'utilisation de memcpy, j'arrivais a compiler ma librairie et à l'utiliser ailleurs...

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
34
 
# Compiler/Linker
CC = C:\MinGW\bin\gcc.exe
LD = C:\MinGW\bin\ld.exe
CP = copy
CFLAGS = -Wall
 
# Archiver and indexer
AR = C:\MinGW\bin\ar.exe
RANLIB = C:\MinGW\bin\ranlib.exe
 
# files removal
RM = del
 
LIB_OBJ = SkSocket.o
 
LIB_FILE = libSkSocket.a
LIB_DIR =-LC:\MinGW\lib\
LIBS = -lwsock32
INCLUDE = -IC:\MinGW\include\ 
 
all: $(LIB_FILE) clean
 
# compilation de la librairie		
$(LIB_FILE): $(LIB_OBJ)
			$(AR) rc $(LIB_FILE) $(LIB_OBJ)
			$(RANLIB) $(LIB_FILE)
 
$(LIB_OBJ): SkSocket.c
			$(CC) $(INCLUDE) -o $(LIB_OBJ) -c SkSocket.c
			$(LD) $(LIB_OBJ) $(LIB_DIR) $(LIBS)
 
clean:
	$(RM) $(LIB_OBJ) $(PROG_OBJ)

PS : j'ai remarqué que j'avais les même soucis pour des fonctions "classiques" du style strlen, strcmp... même en incluant les bons fichiers h...

PS 2 : chose surprenante, il me met un "Warning, no new line at end of file SkSocket.c" alors que j'ai bien des sauts de lignes....un symptôme peut être ?


Que faire ?

Merci de votre aide