Think Higher

Instalacja curl w Visual Studio 2017

Przykład instalacji bibliotek zewnętrznych dla newbies. Opisana zostanie instalacja dwóch typów bibliotek (statycznych i dynamicznych). Dla maszyny 64 bit

Statyczne

  1. Ściągamy odpowiednią wersję curla z tej strony -> link
  2. Odpalamy: x64 Native Tools Command Prompt for VS 2017.
  3. Rozpakowujemy i wchodzimy do folderu “winbuild” curla.
  4. Budujemy dwie wersje biblioteki dla wersji release oraz debug. Za pomocą komendy “nmake“.
  5. nmake /f Makefile.vc mode=static VC=15 ENABLE_IPV6=no MACHINE=AMD64
    nmake /f Makefile.vc mode=static VC=15 ENABLE_IPV6=no MACHINE=AMD64 debug=yes
  6. Odpalamy projekt w VS, w którym chcemy użyć tej biblioteki.
  7. We właściwościach ustawianie następujące zależności dla zakładek Release, oraz Debug

C/C++ > Ogólne > Dodatkowe katalogi plików nagłówkowych
Release: C:\<twójkatalogcurla>\builds\libcurl-vc-x86-release-static-ipv6-sspi-winssl\include;
Debug: C:\<twójkatalogcurla>\builds\libcurl-vc-x86-debug-static-ipv6-sspi-winssl\include;

C/C++ > Preprocesor > Definicje preprocesora
Release & Debug: CURL_STATICLIB;

Konsolidator > Ogólne > Dodatkowe katalogi biblioteki
Release: C:\<twójkatalogcurla>\builds\libcurl-vc-x86-release-static-ipv6-sspi-winssl\lib;
Debug: C:\<twójkatalogcurla>\builds\libcurl-vc-x86-debug-static-ipv6-sspi-winssl\lib;

Konsolidator > Dane wejściowe > Dodatkowe zależności
Release: libcurl_a.lib;
Debug: libcurl_a_debug.lib;

Przy takim ustawieniach najprawdopodobniej ręcznie trzeba dodać standardowe systemowe biblioteki do ostatniego punktu z dodatkowymi zależnościami. U mnie musiałem dorzucić:

  • libcurl_a_debug.lib
  • ws2_32.lib
  • wldap32.lib
  • Normaliz.lib

Dynamiczne

  1. x64 Native Tools Command Prompt for VS 2017
  2. Rozpakowujemy i wchodzimy do folderu “winbuild” curla.
  3. Budujemy dwie wersje biblioteki dla wersji release oraz debug. Za pomocą komendy “nmake
  4. nmake /f Makefile.vc mode=dll MACHINE=x64
    nmake /f Makefile.vc mode=dll MACHINE=x64 debug=yes
  5. Powtarzamy kroki dla zależności w projekcie VS z wyjątkiem definicji preprocesora.
  6. Kopiujemy plik .dll do folderu gdzie istnieje nasz skompilowany plik .exe.
  7. Voila.

CMAKE

Do zainstalowania wrappera typu curlCPP potrzebny jest program cmake, można go ściągnąć o tutaj. W tym przypadku:

  1. Ustawiamy source code home folder, na folder z naszym wraperem ../curlcpp-master
  2. Ustawiamy bin destination folder ../curlcpp-master-build
  3. Wybieramy debug/release
  4. Konfigurujemy ścieżkę (path to) -> CURL_LIBRARY oraz CURL_INCLUDE_DIR np.
  5. ../curl-7.63.0/builds/libcurl-vc-x86-debug-dll-ipv6-sspi-winssl/include
    ../curl-7.63.0/builds/libcurl-vc-x86-debug-dll-ipv6-sspi-winssl/lib/libcurl_debug.lib
  6. Generujemy
  7. Odpalamy plik solucji VS ->
  8. curlcpp-master-build/CURLCPP.sln 2xClick -> Debug/Win32 -> Compilation 3x success and error, czyli wszystko OK
  9. Ustawiamy zależności w projekcie:
    Dodatkowe katalogi plików nagłówkowych dla libcurl i ../curlcpp-master/include
    Dodatkowe katalogi biblioteki libcurl i ../curlcpp-master-build\src\Debug
    Dodatkowe zależności dla input – curlcpp.lib
  10. Dodajemy libcurl_debug.dll to folderu z naszym .exe.

Źródła:

  • https://github.com/JosephP91/curlcpp
  • https://stackoverflow.com/questions/28266953/error-lnk2019-unresolved-external-symbol-libcurl-visual-studio

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: