проблема sockets.h с cygwin и затмением - PullRequest
1 голос
/ 04 сентября 2011

Я получаю эту ошибку: c: \ cygwin \ usr \ include / cygwin / socket.h: 55: 3: ошибка: ожидаемый список спецификаторов-спецификаторов перед '__uid32_t'

Мой код минимальныйи все еще не может скомпилировать:

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>

int main(void) {
    puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
    return EXIT_SUCCESS;
}

У меня есть include C: \ cygwin \ usr \ include для пути к компилятору и компоновщик для C: \ cygwin \ usr \ lib

, пожалуйста, сообщите

Ответы [ 2 ]

3 голосов
/ 04 сентября 2011

Заголовки в C:\cygwin\usr\include и библиотеки в C:\cygwin\usr\lib предназначены для использования в среде Cygwin - это означает, что к ним следует обращаться по их путям Cygwin, /usr/include и /usr/lib.

* 1006.* Я не использовал mingw, но я не думаю, что это часть Cygwin, и я не ожидаю, что он сможет использовать заголовки и библиотеки Cygwin.

Если вы собираетесь использовать mingw, вы должны использовать заголовки и библиотеки, которые установлены с ним.Не указывайте никаких каталогов, связанных с Cygwin.

Или вы можете использовать gcc Cygwin (который является необязательным; вам придется установить его с setup.exe).В этом случае вы можете запустить gcc или make из командной строки.Я не уверен, что Cygwin и Eclipse хорошо играют вместе.

0 голосов
/ 31 декабря 2014

Я знаю, что этот вопрос старый, и я использую более новую версию, но у меня была похожая проблема, и она была решена путем перемещения #include <sys/socket.h> на одну строку выше #include <sys/types.h>.

Что-то в types.h, кажется, блокирует socket.h (не знаю, как).Хотелось бы, чтобы у меня было больше подробностей о причине, но надеюсь, что решение поможет некоторым.

...