Чаще всего в мире Unix / Linux такие имена, как HAVE_STDIO_H
, указывают на то, что код был «автоматически конфискован» (это официальный термин, используемый для описания состояния работы с «автоинструментами», такими как 'Autoconf'). В такой настройке процесс конфигурирования определит, доступен ли <stdio.h>
, и установит #define HAVE_STDIO_H 1
в генерируемом файле config.h
. Компиляция тогда обнаружит, что платформа имеет <stdio.h>
и скомпилирует соответствующий код (материал, который в настоящее время выделен серым цветом).
Адаптация к вашей среде Windows, несколько менее чем на 100% уверенно, так как в Windows может быть какое-то другое значение для HAVE_STDIO_H
, вы можете решить, что будет нормально включить -DHAVE_STDIO_H
в параметры командной строки при запуске компилятор. Или вы можете создать файл конфигурации вручную и определить -DHAVE_CONFIG_H
(это обычный способ указать, что параметры конфигурации находятся в файле 'config.h'). В файле config.h вы получите #define HAVE_STDIO_H 1
, как указано выше.
Примечание: в Unix вы обычно находите скрипт оболочки с именем 'configure', который вы запускаете для создания файла config.h. Если у вас есть Cygwin, есть шанс, что вы сможете использовать этот сценарий в Windows - я только что проверил, что автоматически конфискованный пакет, созданный мной в Solaris, можно настроить в Windows под Cygwin, и он в основном работает - все, за исключением некоторой обработки сети. Я не гарантирую, что он всегда будет терпеть неудачу (но это программное обеспечение - гарантировать что-либо довольно опасно). Я должен добавить, что проблема в моем коде автоконфигурации (тесты сетевой функциональности явно не совсем корректны), а не в Cygwin как таковом. Если бы я сделал работу правильно, она бы сработала. (Кто-то сказал: «Нет переносимого кода; есть только перенесенный код». Это применимо здесь.)
Вам нужна хорошая симуляция среды Unix. MingW также может работать.