IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Undefined reference to.. memcpy


Sujet :

C

Vue hybride

PsyKo BoY Undefined reference to..... 07/04/2010, 12h19
PsyKo BoY Bon en cherchant j'ai oublié... 07/04/2010, 13h38
LittleWhite Bonjour, La méthode pour... 08/04/2010, 00h55
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut Undefined reference to.. memcpy
    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

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 18
    Par défaut
    Bon en cherchant j'ai oublié de lier la librairie qui va bien...
    J'ai donc ajouté "-lmsvcrt" au makefile. Je ne sais pas s'il s'agit de la meilleure solution (lier une lib VC dans gcc ? ) mais ça marche.

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 114
    Billets dans le blog
    147
    Par défaut
    Bonjour,

    La méthode pour ajouter des bibliothèques sous gcc est correcte ( option -lbibliothèque ) Par contre, si vous utilisez un EDI et que vous le faites à la main, cela est moins correct. De plus, la bibliothèque nouvellement incluse me semble un peu bizarre: msvcrt, Microsoft, bien sur, mais pourquoi pas simplement la libc ? ( qui doit être incluse par défaut ).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. winsock.h : undefined reference...
    Par abraxas dans le forum Dev-C++
    Réponses: 14
    Dernier message: 06/08/2012, 13h42
  2. Undefined reference compilation réseau
    Par Ren97 dans le forum Dev-C++
    Réponses: 11
    Dernier message: 08/03/2005, 09h46
  3. Compilation de xmms : undefined reference to...
    Par Michaël dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 04/02/2005, 19h05
  4. undefined reference to `xmlParseFile'
    Par Clemaster dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 25/06/2004, 20h38
  5. g++ : undefined reference to ...
    Par le_barbu dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 14/05/2004, 07h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo