Форум » [x]Harbour » libcurl в Harbour, возможно ли? » Ответить

libcurl в Harbour, возможно ли?

Dr. Oldwarez: Я уже довольно поработал с включением curl, а также httpie в программу. Хотелось бы попробовать включить это прямо через библиотеку, чтобы не плодить зависимые EXEшники, на стыках между которыми появляются ошибки. Подскажите, пожалуйста, где найти libcurl для Harbour с мануалами?

Ответов - 34, стр: 1 2 All

alkresin: Libcurl - на сайте curl: https://curl.se/, там и мануалы. А libcurl для Harbour - hbcurl - если собираете Harbour из исходников, то надо прописать HB_WITH_CURL. Пример использования - в harbour/contrib/hbcurl/tests. И еще: у команды curl есть такая полезная опция --libcurl имя_файла - после исполнения в файл записывается инструкция, какие вызовы libcurl надо использовать, чтобы получить тот же результат, что у команды.

Dr. Oldwarez: Спасибо за ответ! Вопрос: 1) Какие исходники и где качать? А то версия от 2011 года ИМХО старовата. 2) Потом туда надо ещё MINIGUI запихнуть. До этого он у меня был на Борланде. А тут MinGW

Dima: Dr. Oldwarez Можно попробовать поиск на форуме по слову libcurl , вдруг будет ответ...


Dr. Oldwarez: Итак, исходники закачаны. Тогда вопрос, чем компилировать - MinGW или BCC? И где прописывать это HB_WITH_CURL?

Dima: Dr. Oldwarez пишет: И где прописывать это HB_WITH_CURL? У меня такой батник под MIGW и живет в .......core-master\contrib\hbcurl\ [pre2] set PATH=%PATH%;C:\MinGW12\bin;c:\hb32mingw19\bin\ set HB_WITH_CURL=c:\curl\781\include set HB_STATIC_CURL=yes c:\hb32mingw19\bin\hbmk2 hbcurl [/pre2]

Dr. Oldwarez: Итак, в скачанном бинарном дистре c:\hb32\lib\win\mingw уже наличествуют libhbcurl.a и libhbcurl_dll.a иду в c:\hb32\contrib\hbcurl\tests и собираю там пример. c:\hb32\contrib\hbcurl\tests>c:\hb32\bin\hbmk2 ftp_uldl В итоге оно всё равно требует какие-то левые библиотеки libcurl-4.dll, libcrypto.dll и libssl.dll Какие ещё ключи нужны, чтобы оно не клянчило этих библиотек?

Dima: Должны быть под Mingw libcurl.a libcurl.dll.a libhbcurl.a libhbcurls.a liblibcurl.a + libcurl.dll Dr. Oldwarez пишет: libcrypto.dll и libssl.dll HbSsl еще надо собрать В новом варианте уже вот такие нужны libcrypto-1_1.dll libssl-1_1.dll

Dima: Dr. Oldwarez пишет: уже наличествуют libhbcurl.a и libhbcurl_dll.a может они древние просто тут точно свежие https://curl.se/windows/

Dima: я тут смотрю changelog на MiniGui и наблюдаю вот такую строку * Updated: HbCurl library: - update for using Curl package version 7.66.0 (10 Sep 2019). Contributed by Grigory Filatov <gfilatov@inbox.ru> Так что наверное с MinGW можно и не париться

Dr. Oldwarez: Dima пишет: HbSsl еще надо собрать А их как собрать? У меня выдаёт hbmk2[hbssls]: Warning: Missing dependency: openssl

Dima: Dr. Oldwarez пишет: openssl качнуть его надо http://slproweb.com/products/Win32OpenSSL.html

Dima: Dr. Oldwarez пишет: А их как собрать? set path=C:\MinGW12\bin\ SET HB_WITH_OPENSSL=C:\OpenSSL-Win32_11\include c:\hb32mingw19\bin\hbmk2 hbssl.hbp

Dr. Oldwarez: Dima пишет: я тут смотрю changelog на MiniGui и наблюдаю вот такую строку * Updated: HbCurl library: - update for using Curl package version 7.66.0 (10 Sep 2019). Contributed by Grigory Filatov <gfilatov@inbox.ru> Так что наверное с MinGW можно и не париться Да, я тут глянул в свой старый добрый MiniGUI - сразу нашёл и hbcurl и hbssl. Теперь только один вопрос: как заставить компилятор подхватывать эти библиотеки? Поставил самой первой строкой require hbcurl - не помогает.

Dima: Dr. Oldwarez пишет: require hbcurl так require вроде ж ни чего и не делает если батником сборка и это минигуи то можно примеры посмотреть ну вот к примеру как указать либу call ..\..\..\batch\compile.bat demo /l hbdll32 %1 %2 %3 %4 %5 %6 %7 %8 %9 для SSL в сырец надо добавить REQUEST __HBEXTERN__HBSSL__

Dr. Oldwarez: Dima пишет: если батником сборка и это минигуи то можно примеры посмотреть ну вот к примеру как указать либу compile.bat demo /l hbdll32 %1 %2 %3 %4 %5 %6 %7 %8 %9 для SSL в сырец надо добавить REQUEST __HBEXTERN__HBSSL__ Как залинковать ДВЕ библиотеки? call ..\..\..\batch\compile.bat myprog /l libcurls /l libcurl Выдаёт вот что [pre2] Error: Unresolved external '_curl_global_init_mem' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_global_cleanup' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_formfree' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_easy_cleanup' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_easy_reset' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_easy_duphandle' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_easy_init' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_easy_pause' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_easy_perform' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_easy_send' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_easy_recv' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_formadd' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_slist_append' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_easy_setopt' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_easy_getinfo' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_slist_free_all' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_easy_escape' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_easy_unescape' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_version' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_version_info' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_easy_strerror' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_getdate' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_escape' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_unescape' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core Error: Unresolved external '_curl_free' referenced from C:\MINIGUI\HARBOUR\LIB\HBCURLS.LIB|core [/pre2]

Dima: Dr. Oldwarez пишет: Как залинковать ДВЕ библиотеки? а это BCC или MinGw ? Если BCC по идее нужны эти libcurl.lib hbcurls.lib hbcurl.lib а вот эта (не уверен) hbcurls.lib нужна если еще HBSSL юзаем

Dr. Oldwarez: Dima пишет: а это BCC или MinGw ? BCC

Dima: Dr. Oldwarez пишет: Как залинковать ДВЕ библиотеки? как то так call ..\..\..\batch\compile.bat BTExp2 %1 /l hmg_hpdf /l hbhpdf /l libhpdf /l png /l hbzlib %2 %3 %4 %5 %6 %7 %8 %9

Dr. Oldwarez: Так и сделал, а всё равно те же Unresolved external. Что-то ещё туда залинковать надо...

Dima: BCC какой 55 или 58 ?



полная версия страницы