#c #linux #cygwin #kernel32 #getaddrinfo
#c #linux #cygwin #kernel32 #getaddrinfo
Вопрос:
Я новичок в Cygwin. Я установил его сегодня (последняя версия загружена с их веб-сайта) и создал программу, над которой я работал, ту, которая много лет назад была создана для Windows с использованием Cygwin другим разработчиком — Blitzed IRC Trivia (ветка разработки).
В Win10 / 64 Cygwin завершил полную сборку только с теми же двумя предупреждениями (относящимися к неиспользуемым, но установленным переменным), которые я получаю, когда делаю это в Linux. Я разрабатывал и запускал его в Linux более месяца. Он подключается к IRC-серверу и начинает задавать вопросы.
После того, как я использовал Cygwin для создания exe-файла, он запустился, но не прошел проверку, когда дошел до L25, поэтому в connect_to
функции произошел сбой (ссылка выше). Я несколько раз перепроверил свой код и, наконец, установил gdb из диспетчера пакетов Cygwin.
Когда я запустил его через gdb, прежде чем перейти к точке останова, я получил ошибку, которая выглядела довольно серьезной относительно kernel32.dll. К сожалению, я не вставлял выходные данные в файл, поэтому не могу выдать точную ошибку без перезагрузки в Windows.
Но после того, как я запустил его в ReactOS (в VirtualBox на Debian 8), после того, как я установил библиотеки DLL cygwin на место, я получаю диалоговое окно
точка входа процедуры CancelSynchronousIo не может быть найдена в библиотеке dynamic link kernel32.dll
Я искал в Google, но пока не нашел ничего конкретного. Моим следующим шагом было бы попробовать опубликовать в списке рассылки Cygwin.
Комментарии:
1. ReactOS все еще находится в альфа-версии. Чего вы ожидали. Вероятно, они еще не реализовали
CancelSynchronousIo
функцию.
Ответ №1:
Я пробовал создавать без использования -static, и теперь он работает. Я не знаю, почему это вызвало ошибку.