2015-05-17 36 views
5

Więc przyszedłem z cURL jako bardzo ładną biblioteką i działa bardzo dobrze w OSX. Ale teraz w Windows mam duże problemy z przygotowaniem się do tej biblioteki. Przeszukałem go przez około 2 dni i wypróbowałem kilkanaście (w szczegółach) różnych sposobów, aby to przygotować. Bez żadnego sukcesu.cURL z Visual Studio 2013

Oto kilka sposobów, ja w zasadzie próbowałem:

  1. Bezpośrednią Pobierz: Problem tutaj rozpoczyna się już z prawej pobrania. Oficjalna strona pobierania jest dość zagmatwana, więc rozważyłem ten "kreator pobierania cURL"> "libcurl development", który daje mi wersję, którą powinienem włączyć do każdego projektu. Ale jak dokładnie to uwzględnić? W JAKICHKOLWIEK instrukcjach tam to prowadzi mnie do katalogów, których nawet nie mam. Niemal zawsze wspomniano o tym "curllib.lib". Pobrałem około 6 różnych wersji na tej stronie pobierania, w żadnym z nich nie ma tego pliku. (Zobacz na przykład instrukcję this)
  2. Git + CMake: Jako rozwiązanie powyższego linku sugerowane jest użycie git clone na tym. Zrobiłem tam wszystkie instrukcje, a także wygenerowałem projekty z ostrzeżeniami. Ale tutaj również jest napisane:
    Po zbudowaniu celu instalacji, twoje foldery bin/include/lib znajdą się w C: \ curl.vc12
    Cóż, tak naprawdę nie zrozumiałem jego punktu "build install target", i po prostu buduj całą mapę projektu. Kompiluje poprawnie (115 pomyślnie, 0 nie, 2 pominiętych). Ale teraz nie ma C: \ curl.vc12. Co muszę zrobić przed konfiguracją przed skompilowaniem?
  3. NuGet: Pomysł pochodzi z linku w punkcie (1), innym razem z NuGet.
    Z wydaniem Successfully added 'curl 7.30.0.2' to test. również wydawało się to miłe, ale kompilowanie simple.c prowadzi do wielu błędów łącznika unresolved external symbol. Ale dostarczane jest rozwiązanie:
    Upewnij się, że katalog include i katalog lib są określone w katalogach Visual C++ we właściwościach projektu.
    Więc Project > Properties > VC++ Properties > "Include Directories" i
    Project > Properties > VC++ Properties > "Library Directories"
    jak również w Project > C/C++ > General > "Additional Include Directories" aw Project > Linker > General > "Additional Library Directories" rozpaczliwie dodał \ Packages \ ścieżka z moim folderze projektu.
    Jak wspomniano w instrukcji, dodałem libcurl.lib;libeay32.lib;ssleay32.lib;Ws2_32.lib;libssh2.lib;zlib.lib;wldap32.lib; do Project > Linker > Input > "Additional Dependencies".
    Wszystko, co zostało zrobione, błędy unresolved external symbol zniknęły! Dlatego dostaję tylko jeden błąd z informacją: cannot open file 'libcurl.lib'. Co mogę tutaj zrobić?

Jestem całkiem nowy na wszystko. Ale teraz bardzo się staram, aby to wreszcie zadziałało. Więc co mogę zrobić?
Pracuję z Visual Studio 2013 Community Edition. Aktualnie najnowszą wersją cURL jest 7.42.1. Każda pomoc jest bardzo pożądana!

+1

Czy widziałeś [to] (http://stackoverflow.com/questions/20171165/)? – uesp

+0

Ponownie sprawdź moje pytanie. (Niebieski link) (= – beshtaa

Odpowiedz

10

Miałem problemy samemu, wreszcie zadziałało. Pobrałem curl-7.42.1.zip z official website. W archiwum znajdziesz kod źródłowy i winbuild/BUILD.WINDOWS.txt, który zasadniczo zawiera instrukcje, których przestrzegałem. Zakładam, że został rozpakowany do C: \ curl-7.42.1.

Otwórz Visual Studio command prompt położony w

C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ Tools \ Skróty

To automatycznie ustawia zmienne środowiskowe potrzebne do korzystania wizualna Narzędzia studyjne, takie jak kompilator. Następnie przenieść do katalogu winbuild i wywołać

nSpraw/f trybie Makefile.vc = DLL

opisany w pliku tekstowym wspomniano powyżej.

To będzie utworzyć katalog

C: \ curl-7.42.1 \ buduje \ libcurl-vc-x86-release-dll-IPv6 SSPI-winssl

zawierający libCurl. dll, libcurl.lib i niezbędne pliki nagłówkowe. Zmieńmy nazwę na C:\curl-7.42.1\builds\release: "D

  1. Następnie otwórz projekt.
  2. Otwórz właściwości swojego projektu.
  3. Upewnij się, że wybrałeś Release jako konfigurację (lewy górny róg)!
  4. Przejdź do VC++ Directories > Include directories i dodać C:\curl-7.42.1\builds\release\include
  5. Dodaj do VC++ Directories > Library directoriesC:\curl-7.42.1\builds\release\lib.
  6. Przejdź do Linker > Input > Additional Dependencies i dodaj libcurl.lib.
  7. Na koniec skopiuj C:\curl-7.42.1\builds\release\bin\libcurl.dll do folderu projektu.

To powinno wystarczyć! : D Jeśli chcesz użyć cURL w trybie debugowania, możesz zrobić prawie to samo, przekompilować używając nmake /f Makefile.vc mode=dll debug=yes, przejść do właściwości twojego projektu, dodać nowo utworzone ścieżki do katalogów (zmieniając libcurl.lib na libcurl_debug.lib) i powinieneś zrobić .

+0

Dziękuję za szybką odpowiedź, postaram się to wkrótce! – beshtaa

+1

Ze łzami w oczach i filiżanką kawy w ręku mogę iść dalej, bo Pan zrobił mój dzień. (: Dziękuję bardzo ważne! Edycja: Proszę zmienić * Makefile.vs * na * Makefile.vc * – beshtaa

+0

Miło usłyszeć, nie ma za co! :) Zmieniono mój post, jak wskazano: – Jeinzi

0

Miałem ten sam problem. Pobrałem curl z https://github.com/curl/curl. możesz go skompilować bezpośrednio w Visual Studio 2013 (ale zachowaj ostrożność przy ustawianiu parametrów: x64 z wersją). Główną różnicą jest to, że daje ci libcurl_imp.lib. Następnie wszystko, co musisz zrobić, to ustawić zmienne środowiskowe, jak opisano powyżej. Wystarczy wspomnieć, że będziesz musiał użyć libcurl_imp.lib zamiast libcurl.lib w dodatkowych zależnościach (podejrzewam, że ta zmiana wynika z nowej wersji curl).