Newsgroup: it.comp.lang.c
Titolo: Compilare su windows...

Buongiorno a tutti... sto cercando di compilare su windows... ma
continuo a ricevere come errore [undefined reference to bzero()] e
analoghe per send() recv() htons().......
qualcuno riesce ad aiutarmi a risolvere il mio problema?
Grazie mille
uso le seguenti librerie (che vedete qui sotto)
#include <stdio.h>
#include <string.h>
#include <sys/stat.h>
#include <signal.h>
#include <math.h>
#include <time.h>
#include <fcntl.h>
#include <stdlib.h>
#define LINUX /* define this if you are on linux   */
//#define _WIN_ /* define this if you are on windows */
#ifdef _WIN_
#		include <io.h>
#		include <sys/types.h>
#       include <winsock2.h>      /* WSAGetLastError, WSAStartUp  */
#		include <winsock.h>
#endif
#ifdef LINUX
#		include <unistd.h>
#		include <sys/types.h>
#       include <netdb.h>         /* gethostbyname  */
#       include <netinet/in.h>    /* htons          */
#       include <sys/socket.h>
#endif


su windows non so, secondo POSIX.1 bzero() è definito in <strings.h>
(che non hai incluso).
Ciao!


non va :(((

 Buongiorno a tutti... sto cercando di compilare su windows...
Con quale compilatore?
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


gcc
:) il software funziona su linux/mac e vorrei farlo girare il win...
posso postare il codice?

 posso postare il codice?
ma semplicemente cercare il prototipo della funzione che non trovi con
un grep? :)

 > > questo articolo e` stato inviato via web dal servizio gratuitohttp://
www.newsland.it/newssegnalagliabusi
 ad 
ab...@newsland.it


 Non so come fare. :)
Allora, scarica CodeBlocks (� un IDE C/C++ open source basato su mingw) e
compila con questo sotto Windows. E' un ottimo ambiente x-platform. Devi
avere solo l'accortezza di ridefinire la bzero() nel modo seguente:
#ifdef __MINGW32__
#define bzero(p,sz)  memset(p, 0, sz);
#endif
Prova e fammi sapere.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 questo articolo e` stato inviato via web dal servizio gratuitohttp://
www.newsland.it/newssegnala
 gli abusi ad 
ab...@newsland.it
:) grazie per la risposta. il nuovo compilatore mi da errore sulla
sleep
dice sleep was not declared in this scope
"La funzione in questione è sleep(60)" ...
grz

 grz
se commento la sleep() dice..
undefined reference e la lista di funzioni di prima, meno che la bzero
che abbiamo ridefinito :)

 sleep
#ifdef __MINGW32__
#include <windows.h>
#define sleep(seconds) Sleep((seconds)*1000)
#endif
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 che abbiamo ridefinito :)
Riporta i messaggi d'errore esatti.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 


 che abbiamo ridefinito :)
Evidentemente è un segno del destino :)
Io aggiungerei all'inizio qualcosa del tipo:
#ifdef _WIN_
#error Error: you're trying to compile on windows. C'mon, be
realistic!
#endif
Ciao!
P.S. Il porting su varie piattaforme è spesso tutt'altro che indolore,
specialmente quando ti ottieni ad uno standard (nel tuo caso nemmeno
POSIX, ma qualche derivato). Le soluzioni sono tre: o ti aiuti con dei
tool appositi (i makefiles sono lì apposta per questo!), o per ogni
funzione metti un #ifdef, oppure cerchi una toolchain (compilatore
+includes+etc.) che ti permetta di compilare con lo standard che hai
scelto. Di windows ci capisco quasi nulla, ma personalmente darei
un'occhiata a cygwin - che da quanto ho capito ha qualcosa a che fare
con tutto questo.