Ошибка libcurl (код ответа 0 - хост не найден) в программе (построенной с помощью MinGW) при использовании связанной библиотеки libcurl-4.dll - PullRequest
0 голосов
/ 08 мая 2020

Я перенес приложение на windows с помощью MinGW и хочу распространить его со всеми необходимыми для его работы библиотеками.

Приложению требуется libcurl для некоторых запросов ssl (https), которые оно делает.

Для распространения я скопировал все .dll и поместил их вместе с .exe. Это работает нормально, но всякий раз, когда он пытается сделать запрос в curl, он получает ответ 0 (как в host not found - не ноль, нормально).

Программа работает нормально, если я не использую свою копию libcurl -4.dll, но вместо этого используйте тот, который идет в комплекте с msys2.

Почему это происходит? Я проверил в проводнике процессов, и единственная разница между тем, работает он или нет, заключается в том, использует ли он мою копию libcurl-4.dll (все остальные зависимости curl скопированы отлично).

enter image description here

^, когда это работает (используя git для .dll окна - если я скопирую эту dll рядом с программой, она не удастся)

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

Я нашел причину, но не знаю достойного решения.

Объединенный libcurl-4.dll работает только для запросов https, если вы также объединяете папку ssl, содержащую сертификаты. Мне кажется, что здесь должны использоваться сертификаты ОС (Windows), но я не знаю, как это сделать.

0 голосов
/ 08 мая 2020

Если вызов вашей функции libcurl на самом деле возвращает ноль, значит, она была вызвана нормально, и с вашими библиотеками DLL или подобными нет проблем, но похоже, что вам нужно настроить использование libcurl.

...