Доступ к библиотеке Gnu C под Windows - PullRequest
0 голосов
/ 17 июня 2009

Я пытаюсь скомпилировать программу на C, которую я скачал из интернета, используя cl.exe в командной строке в Windows.Этот файл включает в себя файлы библиотеки gnu C, такие как getopt.h и unistd.h, которые по умолчанию недоступны в Windows.Как я могу получить доступ к ним (пока еще с помощью компилятора cl.exe).

Спасибо.

Ответы [ 6 ]

3 голосов
/ 17 июня 2009

Файлы getopt.h и unistd.h являются заголовочными файлами. Лучше использовать совместимый с GNU компилятор, такой как MINGW32. Поскольку замены этих файлов в общем случае недостаточно, чтобы ваша библиотека компилировалась и работала под Windows-компилятором. Если вы все еще хотите использовать cl.exe, замените «unistd.h» на «windows.h» и получите совместимый с win32 «getopt» из Интернета.

3 голосов
/ 17 июня 2009

Для getopt.h вы можете использовать xgetopt . Если вы заинтересованы в изменении компиляторов, всегда есть MingW. В противном случае вам, вероятно, придется написать свой собственный getopt.h или unistd.h.

3 голосов
/ 17 июня 2009

getopt.h и unistd.h не являются библиотеками - они являются заголовочными файлами. Даже если они у вас есть, они будут бесполезны для вас, так как вам также потребуются настоящие двоичные библиотеки (файлы .LIB или .a). Файл unistd.h, как следует из его названия, содержит объявления функций, специфичных для Unix.

2 голосов
/ 17 июня 2009

Всегда есть cygwin - используйте включаемые файлы и ссылку на библиотеку cygwin1.dll, вот их запись FAQ по этому вопросу.

1 голос
/ 17 июня 2009

getopt.c из MinGW будет довольно просто портировать на MS C (я сделал это с VS2005). Вы можете получить его с веб-сайта MinGW. В этой публикации Stackoverflow обсуждается замена unistd.h в компиляторах MS C.

0 голосов
/ 17 июня 2009

unistd.h - это стандартный файл включения C . Я был бы шокирован, если какой-либо компилятор, который вы используете, не предоставляет его. Ты уверен, что его там нет?

...