Dev-C++ & Curl [ статическая линковка ] how-to

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Whirt, 15 Jun 2010.

  1. Whirt

    Whirt Elder - Старейшина

    Joined:
    24 Jun 2008
    Messages:
    23
    Likes Received:
    86
    Reputations:
    5
    Как установить Curl+Zlib+libSSL для IDE Dev C++ и статически прилинковать.

    /Dislaimer/
    Извините, не знал куда закинуть. Сам я только начинаю знакомство с C, поэтому я буду рад если вы поправите меня в неточностях. How-to не претендует на полноту и точность, и вообще ни на что не претендует - просто передо мной встала проблема использования Curl-а для одного проекта C++, готового решения под Dev C++ не нашел, находились только варианты подгрузки DLL - но мне они не подходили.

    Надеюсь, кому нибудь пригодится опыт.

    To-Do:

    1) Скачиваем Dev C++ (http://www.bloodshed.net/) (у меня установлена wxDev-C++, но подойдет и обычная)
    2) Идем: http://curl.haxx.se/download.html
    Скачиваем:
    Win32 2000/XP 7.20.1 libcurl
    3) Скачиваем и устанавливаем OpenSSL и Zlib
    (http://www.shininglightpro.com/products/Win32OpenSSL.html)
    (http://sourceforge.net/projects/gnuwin32/files/zlib/1.2.3/zlib-1.2.3.exe/download)

    4) Копируем все что в папке include у Curl'а в include папку Dev C++
    5) Копируем все что в lib (*.a - файлы) у Curl'а в lib-каталог Dev C++
    6) Создаем новый проект , добавляем в самом верху c-файла:
    #define CURL_STATICLIB
    7) Идем в Tools->Compiler Options

    Видим второй сверху textarea (над ним надпись: Add these commands to the linker command line).

    Вписываем туда: -lcurl -lws2_32 -lidn -lssl32 -lssh2 -leay32 -lwldap32

    (возможно я перемудрил немного с библиотеками - поправьте если что,- но без этих либ у меня собираться не хотело)

    8) И еще важный момент: Project->Project Options->Parameters,
    нажимаем: Add Library or Object , и указываем путь к файлу libz.a
    (у меня он получился: ""C:/Program Files/GnuWin32/lib/libz.a"")

    9) Все, можно собирать. Ошибок теперь быть не должно.
    Правда exe-шничек неплохо вырастет, у меня получился около 600 кб, зато теперь Curl+Zlib на борту :)

    p.s.

    Самый простой код - для проверки на ошибки при сборке:

    Code:
    #define CURL_STATICLIB
    #include <curl/curl.h>
    
    int main(void) {
        CURL *curl;
        curl = curl_easy_init();
        return 0;
    }
    
     
    #1 Whirt, 15 Jun 2010
    Last edited: 15 Jun 2010