Программирование сокетов C с помощью CygWin - PullRequest
4 голосов
/ 12 ноября 2010

Привет Я пытаюсь написать небольшую серверную / клиентскую программу на C, используя CygWin, проблема в том, что компилятор gcc в Cygwin, похоже, не содержит стандартных заголовков, связанных с программированием сокетов. При попытке скомпилировать мою серверную программу я получаю:

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

Эти три заголовка расположены в другом месте CygWin-среды?

Ответы [ 5 ]

1 голос
/ 01 августа 2017

У меня тоже была такая же проблема ... я часами гуглял и наконец нашел это ... спасибо ralph ...

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

Для команд сокетов вы должны включитьнекоторые пакеты в cygwin при установке ... (Если вы установили, попробуйте переустановить ...)

Во время установки:

  1. В фазе «ВЫБОР ПАКЕТОВ»установки.

  2. Разверните DEVEL

  3. выберите компиляторы GNU для c и c ++

    4. И нажмите «Далее» и завершитеустановка.

enter image description here

СЕЙЧАС, попробуйте программу с сокетом, включающую sys / socket.h ... Я надеюсь, что она будет работать ... :-)..

1 голос
/ 12 ноября 2010

Попробуйте использовать параметр командной строки компилятора -I, чтобы указать путь к файлам заголовков.

Мои локальные ссылки

-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 голосов
/ 01 декабря 2018

У меня была эта проблема в течение нескольких дней с библиотечной апофенией. поэтому сначала убедитесь, что установленные вами библиотеки настроены с помощью простой команды

. / Настройки

после настройки используйте следующие команды для сборки, установки и проверки библиотек

все - Сборка библиотек

установить - установить библиотеки

проверка - тестирование библиотек

doc - генерировать документацию через doxygen

Надеюсь, это поможет. :)

0 голосов
/ 28 апреля 2014

У меня тоже была такая же проблема. Я решил просмотреть параметры компиляции.

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 голосов
/ 12 ноября 2010

По крайней мере, на моем cygwim они в

/ usr / include / sys и / usr / include / netinet

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...