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
- Ściągamy odpowiednią wersję curla z tej strony -> link
- Odpalamy: x64 Native Tools Command Prompt for VS 2017.
- Rozpakowujemy i wchodzimy do folderu “winbuild” curla.
- Budujemy dwie wersje biblioteki dla wersji release oraz debug. Za pomocą komendy “nmake“.
- 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 - Odpalamy projekt w VS, w którym chcemy użyć tej biblioteki.
- 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
- x64 Native Tools Command Prompt for VS 2017
- Rozpakowujemy i wchodzimy do folderu “winbuild” curla.
- Budujemy dwie wersje biblioteki dla wersji release oraz debug. Za pomocą komendy “nmake”
- nmake /f Makefile.vc mode=dll MACHINE=x64
nmake /f Makefile.vc mode=dll MACHINE=x64 debug=yes - Powtarzamy kroki dla zależności w projekcie VS z wyjątkiem definicji preprocesora.
- Kopiujemy plik .dll do folderu gdzie istnieje nasz skompilowany plik .exe.
- Voila.
CMAKE
Do zainstalowania wrappera typu curlCPP potrzebny jest program cmake, można go ściągnąć o tutaj. W tym przypadku:
- Ustawiamy source code home folder, na folder z naszym wraperem ../curlcpp-master
- Ustawiamy bin destination folder ../curlcpp-master-build
- Wybieramy debug/release
- Konfigurujemy ścieżkę (path to) -> CURL_LIBRARY oraz CURL_INCLUDE_DIR np.
- ../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 - Generujemy
- Odpalamy plik solucji VS ->
- curlcpp-master-build/CURLCPP.sln 2xClick -> Debug/Win32 -> Compilation 3x success and error, czyli wszystko OK
- 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 - 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
Dzięki stary! Oby ta strona nie spadła z rowerka