<code type="c">
/********************************************************************
* Client simple avec l'utilisation de Socket en langage C
* Compiler avec GCC (ide Code::Blocks) sous Windows
*
* Programed by Bug_Bug (==rtfm321)
*
* P.S. N'oubliez pas de linker avec la lib libwsock32.a
*********************************************************************/
/* Verification que le compilateur est bien un compilateur C et pas C++ */
#ifdef __cplusplus
#error Be sure you are using a C compiler...
#endif
#if defined (WIN32) /* Si on compile ce code source sous Windows, alors */
#include <winsock2.h>
#elif defined (linux) /* Sinon si on compile sous linux, alors */
Voila, donc bien sur je le rappel, je suis sur Visual C++ 2008 Express.
Donc je tiens à préciser que ca ne viens pas de la source car d'autres personnes l'on compilé.
Mais je n'y parviens pas :(
En lisant les commentaires sur le site cppfrance, j'ai entendu parler de Link de certaines librairie ?
Je savais le faire sur Devc++ mais en revenche si ca viens de ca, je ne sais pas faire sur Visual C++ 2008 Express. Et je n'ai trouver aucune information concernant ceci donc serais-ce automatic ?
Enfin je vous remerci de l'aide que vous m'apporterez,
Cordialement,
Am0
A voir également:
Compilation impossible sous Visual C++ 2008 Express
fregolo52
Messages postés1114Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20214 8 oct. 2008 à 09:18
Salut,
Tu as un pb de compil pas de link.
Tes erreurs sont liées à des déclarations "sauvages" en milieu de fonction, tu dois donc compiler en C et pas en C++.
Pour rappel :
SOCKADDR_IN sin; déclaré en plein milieu de code compile en C++ mais pas en C.
Déporte toutes tes déclarations en début de fonction ou if/while/for, ou compile en C++.
Pour le compilo regarde dans les propriétés de ton projet rubrique C/C++ option Advanced.
Tu veras que le fichier à été crée en C donc c'est bien une source C,
De plus en lisant les commentaire beaucoup de gens l'ont compilé notemment sous linux !
Donc je suppose que ca viens pas de la.
Pour info j'ai essayer de compiller en C++ et ca me met :
fatal error C1189: #error : Be sure you are using a C compiler...
Chose qui est normal car :
#ifdef __cplusplus
#error
Be sure you are using a C compiler...
#endif
Vérifi si c'est pas compilé en c++ ;)
Donc c'est forcement du C et en plus la source à déja été compilée par plusieurs personnes ...
fregolo52
Messages postés1114Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20214 8 oct. 2008 à 09:46
Euh !!!!
Si tu regardes bien les commentaires tu verras que quelqu'un a eu le même pb que toi.
Et quelle est la réponse du créateur de la source ? : Déclarer les objet en erreur en début de fonction. Je te conseille donc de suivre ce qu'il dit.
Pour info, par expérience, les compilo évoluent, j'en ai fait l'expérience entre VC6 et VS2003, le même programme compil en VC6 et pas en VS2003 des warning sont passés en erreur.
fregolo52
Messages postés1114Date d'inscriptionmercredi 15 juin 2011StatutMembreDernière intervention 6 mai 20214 8 oct. 2008 à 10:04
Actuellement je suis sous VC6.
Avec j'étais sous VS2003 et gcc/g++, il fallait du code compatible Windows/Linux.
A un moment, j'ai eu la tâche de faire du lite sur le gros projet. Comme partout, il fallait faire plein de test sans matos, mon serveur (process) devait tourner sous Linux, et l'IHM sous Windows, dur dur de faire des tests avec un seul PC, j'ai donc installé Code::Blocks, c'est un bon soft pour du multi-plateforme et il est convivial.
Si tu as des pb avec cet IDE, il y a des forums. Je ne l'ai plus sous la main donc je ne pourrai pas te conseiller.
PS : en effet; sous gcc (et tout compilo respectant la norme) son code ne devrait pas compiler, seul VC6 doit le compiler.