Не могу установить библиотеку cURL в Code::Blocks + MinGw

Я довольно новичок в c++. Возникла необходимость установить либу cURL в Code::Blocks. Почитав в сети я понял, что это можно сделать если:

  • A) Установить в compiler -> search directories -> compiler папку include с хедерами
  • B) Добавить в compiler -> linker файл libcurl.a

Взял для примера такой код:

#include <iostream>
#include "curl/curl.h"
#define CURL_STATIC

using namespace std;

int main()
{
  CURL *curl;
  CURLcode res;

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
    /* example.com is redirected, so we tell libcurl to follow redirection */
    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);

    /* Perform the request, res will get the return code */
    res = curl_easy_perform(curl);
    /* Check for errors */
    if(res != CURLE_OK)
      cout << "curl_easy_perform() failed: " << curl_easy_strerror(res) << endl;

    /* always cleanup */
    curl_easy_cleanup(curl);
  }
    return 0;
}

Проблема в том, что после этих действий при компиляции появляется бесчисленное число ошибок по типу:

||=== Build: Debug in [ИМЯ ПРОЕКТА] (compiler: GNU GCC Compiler) ===|
...\curl-7.69.0-win32-mingw\curl-7.69.0-win32-mingw\lib\libcurl.a(connect.o)|| undefined reference to `_imp__ntohs@4'|
...\curl-7.69.0-win32-mingw\curl-7.69.0-win32-mingw\lib\libcurl.a(connect.o)|| undefined reference to `_imp__getpeername@12'|
...\curl-7.69.0-win32-mingw\curl-7.69.0-win32-mingw\lib\libcurl.a(connect.o)|| undefined reference to `_imp__WSAGetLastError@0'|

На самом деле их больше сорока

После долгих поисков по сети я наткнулся на один ответ(уже не помню где): В compiler -> linker нужно поместить два файла:

  1. libcurl.a
  2. libcurl.dll.a

Окей, все скомпилировалось, НО при запуске программы через C::B(Компиляция и запуск) появляется диалог со следующей ошибкой: Ошибка при запуске приложения (0xc00000be). Для выхода из приложения нажмите "ОК". Есть еще одно замечание: Если я запущу программу из файла, который генерирует C::B, тоже появится ошибка, но содержания что на компьютере отсутствует libcurl.dll. Ладно, ее я нашел в архиве с cURL, кинул в директорию с программой. Теперь ошибка что нет libcrypto-1_1.dll. Я без понятия где брать эту библиотеку.

P.S.

Сейчас я понял, что установил не ту разрядность библиотеки(32). Я ее переустановил и сделал все тоже самое. Теперь у меня другая ошибка =)

||=== Build: Debug in [Имя проекта] (compiler: GNU GCC Compiler) ===|
:(.text.startup+0x2f)||undefined reference to `curl_easy_init'|
:(.text.startup+0x4d)||undefined reference to `curl_easy_setopt'|
:(.text.startup+0x65)||undefined reference to `curl_easy_setopt'|
:(.text.startup+0x6d)||undefined reference to `curl_easy_perform'|
:(.text.startup+0x91)||undefined reference to `curl_easy_strerror'|
:(.text.startup+0xad)||undefined reference to `curl_easy_cleanup'|
||error: ld returned 1 exit status|
||=== Build failed: 7 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

Примечания:

  1. сам хедер C::B находит
  2. при попытке установки флага curl в линковщике ошибка: ld.exe||cannot find -lcurl|

Буду очень благодарен видео-туториалу как это сделать, так все будет наиболее наглядно.


Установлен MinGw

Установлен Gcc. Сведения о версии:

Thread model: posix
gcc version 8.1.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 

Установлен Code::Blocks версии 17.12

Библиотека cURL версии curl-7.69.0-win64-mingw; ссылка на архив'; Архив распакован в произвольную директорию

Windows 7 (64-х разрядная)

В настройках компилятора поставлена статическая компиляция


Ответы (0 шт):