2010-11-12 4 views
1

Salut J'essaye d'écrire un petit programme serveur/client en C en utilisant CygWin, le problème est que le compilateur gcc de Cygwin ne semble pas contenir les en-têtes standards associés à la programmation de socket. Lorsque vous essayez de compiler mon programme serveur, je reçois:C Programmation de socket avec CygWin

netinet/in.h: No such file or directory 
sys/socket.h: No such file or directory 
netdb.h: No such file or directory 

-ce que ces trois têtes situés ailleurs dans le CygWin-enviorment?

+0

Ils ne montrent pas sous "/ usr/include"? –

+0

oui, ils sont là où ils sont censés être, sous/usr/include/sys, netinet ... mais le compilateur ne les trouve pas? – LightBulb

+0

essayé -I/usr/include? – fazo

Répondre

0

Au moins sur mon cygwim ils sont en

/usr/include/sys et/usr/include/netinet

+0

ils sont là aussi dans mon cygwin, mais le compilateur ne les trouve pas ??? – LightBulb

1

Essayez d'utiliser l'option -I de ligne de commande du compilateur pour spécifier un chemin vers les fichiers d'en-tête .

Mes états de référence locaux

-I dir 
     Add the directory dir to the list of directories to be searched for 
     header files. Directories named by -I are searched before the 
     standard system include directories. If the directory dir is a 
     standard system include directory, the option is ignored to ensure 
     that the default search order for system directories and the 
     special treatment of system headers are not defeated . 
0

J'ai eu le même problème. J'ai résolu de revoir les options de compilation.

NG:

$ gcc -mno-cygwin -o echo_server.exe echo_server.c 
echo_server.c:12:43: sys/socket.h: No such file or directory 
echo_server.c:13:24: netinet/in.h: No such file or directory 

OK:

$ gcc -o echo_server.exe echo_server.c 
0

j'ai aussi eu même problème .. Je suis googler pendant des heures et a finalement trouvé ce ... grâce à Ralph ...

https://ralphexe.wordpress.com/2015/09/09/run-unix-socket-program-in-windows-using-cygwin/

Pour les commandes socket, vous devez inclure certains des packages dans cyg gagner lors de l'installation ... (Si vous avez installé essayez de réinstaller ...)

Lors de l'installation:

  1. En phase d'installation "SELECT FORFAITS".

  2. Expand DEVEL

  3. sélectionnez compilateurs GNU pour c et C++

    suivant et cliquez sur 4. Et terminer l'installation.

enter image description here

Maintenant, essayez avec un programme de prise impliquant sys/socket.h ... J'espère que ce travail ... :-) ..