Makefile et i586-mingw32msvc-c++

Résolu/Fermé
Padawan - Modifié par Padawan le 5/11/2012 à 23:32
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 11 nov. 2012 à 22:13
Bonsoir/Bonjour,

Je bataille avec mon fichier makefile depuis une bonne semaine. Mon programme est en c++. C'est un serveur que j'ai créé à l'aide de la bibliothèque Mongoose.
J'ai installé mingw32 sur mon OS 10.11 alternate i386 afin de compiler le programme.

Voici mon Makefile :
SRC                        = libs/mongoose.c\ 
                                 Configuration.cpp\ 
                                 Logger.cpp\ 
NAME                     = MyServer.exe 
FUNC                     = sort 
OBJ                        = $(SRC:.cpp=.o) 
CC                         = i586-mingw32msvc-c++ 
ULTRASTRICT         = -ansi -Werror -Wstrict-prototypes 
LDFLAGS                += -O0 -g3 -Wall -fmessage -length=0 -fpermissive -Wunued -function 

ifndef UNAME 
 UNAME    := "Msys" 
endif 

ifeq ($(UNAME), "Msys") 
PREFLAGS = "-LC:\\MinGW\\lib" 
CFLAGS  = -lws2_32  
PLATFORM =  
else 
PREFLAGS            =  
CFLAGS  =  
PLATFORM =  
endif 


$(NAME)  : $(OBJ) $(CC) $(PREFLAGS) -o $(NAME) $(OBJ) $(LDFLAGS) $(CFLAGS) $(PLATFORM) 
    
all  : $(NAME) 

fclean  : rm *.o 

re   : all fclean 

echo  : @echo $(UNAME) 

.PHONY  : all re fclean 

.SUFFIXES : .cpp.o 

Maintenant le résultat de la compilation:
libs/mongoose.c:3918: error: '_strtoi64' was not declared in this scope
make: *** [MyServer.exe] Erreur 1

J'ai la même erreur lorsque j'utilise le compilateur 586-mingw32msvc-g++. Par contre, le compilateur 586-mingw32msvc-cpp m'indique la chose suivante : "586-mingw32msvc-cpp: too many input files".



3 réponses

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
6 nov. 2012 à 20:00
Bah visiblement _strtoi64 est une fonction spécifique à windows, donc ton code ne peut pas compiler en tant que tel. Il faut adapter le code à cet endroit :
https://stackoverflow.com/questions/7388410/how-to-cross-platform-converting-char-to-long-long-64-bit

Bonne chance
0
Hi,
Merci cela a résolu mon problème. Finalement, j'ai mis en commentaire la ligne contenant le "define" de la fonction _strtoi64, car je ne travaille que sur la portabilité 32 bits.

Bonne continuation.
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
11 nov. 2012 à 22:13
Parfait bonne continuation !
0