Compilation impossible sous Visual C++ 2008 Express

Signaler
Messages postés
83
Date d'inscription
jeudi 18 juillet 2002
Statut
Membre
Dernière intervention
8 octobre 2008
-
Messages postés
1107
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
10 juillet 2018
-
Bonjours :)


Je ne parviens pas à compiler une source.


La source en question proviens du site cppfrance dont voici l'url :
http://www.cppfrance.com/codes/SOCKET-CLIENT-SERVEUR_42385.aspx


Voila donc la source en question :


<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 */


#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include [file://d:\Documents\Visual file://d:\Documents\Visual] Studio 2008\Projects\Client_Serveur\Client\Debug\BuildLog.htm"
Client - 19 erreur(s), 0 avertissement(s)
 
</citation>




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

5 réponses

Messages postés
1107
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
10 juillet 2018
4
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.
Messages postés
83
Date d'inscription
jeudi 18 juillet 2002
Statut
Membre
Dernière intervention
8 octobre 2008

Oui je comprend bien mais pourtant si tu regarde la source sur :
http://www.cppfrance.com/codes/SOCKET-CLIENT-SERVEUR_42385.aspx

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 ...

Si quelqu'un à d'autres idée, je suis preneur :D

Merci :)
http://www.cppfrance.com/codes/SOCKET-CLIENT-SERVEUR_42385.aspx
Messages postés
1107
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
10 juillet 2018
4
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.
Messages postés
83
Date d'inscription
jeudi 18 juillet 2002
Statut
Membre
Dernière intervention
8 octobre 2008

ha d'accord je vais te faire confiance alors ;)

Sinon je me dis c'est pas mieux d'utiliser un autre compilateur ?

Car si beaucoup de source sont mal codé n'est t-il pas mieux de prendre par exemple Code::Blocks Studio ?

Tu utilise quoi perso ?

Merci
Messages postés
1107
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
10 juillet 2018
4
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.