2015-05-17 35 views
5

Vì vậy, tôi đã đến cùng với cURL như một thư viện rất tốt đẹp và làm việc rất tốt trong OSX. Nhưng trên cửa sổ bây giờ tôi đã có những rắc rối lớn với việc sẵn sàng với thư viện này. Tôi googled bây giờ trong khoảng 2 ngày và đã cố gắng hơn một chục (chi tiết) cách khác nhau để có được điều này đã sẵn sàng. Không thành công chút nào.cURL với Visual Studio 2013

Dưới đây là một số cách cơ bản tôi đã cố gắng:

  1. Các trực tiếp Tải: Vấn đề ở đây đã bắt đầu với việc tải xuống ngay. Trang tải xuống chính thức khá khó hiểu, vì vậy tôi đã xem "cURL Download Wizard"> "phát triển libcurl" này cung cấp cho tôi phiên bản, rằng tôi có thể đưa vào bất kỳ dự án nào. Nhưng làm thế nào chính xác để bao gồm nó? Trong bất kỳ hướng dẫn ra khỏi đó nó dẫn tôi đến thư mục tôi thậm chí không có. Hầu như luôn luôn "curllib.lib" này được đề cập. Tôi đã tải xuống khoảng 6 phiên bản khác nhau trên trang tải xuống đó, không có tệp nào trong số đó có tệp này. (Xem ví dụ this hướng dẫn)
  2. Git + CMake: Là giải pháp trên aboves Liên kết được đề xuất sử dụng git clone. Tôi đã làm tất cả các hướng dẫn ở đó và cũng nhận được các dự án được tạo ra chỉ với các cảnh báo. Nhưng ở đây nó cũng nói:
    Sau khi xây dựng mục tiêu cài đặt, bạn sẽ tìm thấy các thư mục bin/include/lib trong C: \ curl.vc12
    Vâng, tôi đã không thực sự có được điểm "xây dựng mục tiêu cài đặt", tôi chỉ cần xây dựng toàn bộ bản đồ dự án khi nó đến. Biên dịch tốt (115 thành công, 0 thất bại, 2 bỏ qua). Nhưng bây giờ C: \ curl.vc12 không có ở đó. Tôi phải làm gì trước khi biên dịch?
  3. NuGet: Ý tưởng xuất phát từ liên kết tại điểm (1) một lần nữa, một giải pháp khác với NuGet.
    Với Successfully added 'curl 7.30.0.2' to test. nó cũng có vẻ tốt đẹp, nhưng biên dịch simple.c dẫn đến một loạt các lỗi liên kết unresolved external symbol. Nhưng một giải pháp được cung cấp:
    Đảm bảo thư mục bao gồm và thư mục lib được chỉ định trong thư mục Visual C++ trong thuộc tính dự án.
    Vì vậy, trong Project > Properties > VC++ Properties > "Include Directories"
    Project > Properties > VC++ Properties > "Library Directories"
    cũng như trong Project > C/C++ > General > "Additional Include Directories" và trong Project > Linker > General > "Additional Library Directories" Tôi tuyệt vọng thêm \ gói \ đường đi từ thư mục dự án của tôi.
    Như đã đề cập trong hướng dẫn, tôi đã thêm libcurl.lib;libeay32.lib;ssleay32.lib;Ws2_32.lib;libssh2.lib;zlib.lib;wldap32.lib; vào Project > Linker > Input > "Additional Dependencies".
    Tất cả đã hoàn tất, lỗi unresolved external symbol đã biến mất! Vì vậy, tôi chỉ nhận được một lỗi nói rằng cannot open file 'libcurl.lib'. Tôi có thể làm gì ở đây?

Tôi khá mới mẻ với tất cả những điều đó. Nhưng tôi đang cố gắng hết sức để có được điều này cuối cùng để làm việc. Vậy tôi có thể làm gì?
Tôi làm việc với Visual Studio 2013 Community Edition. Phiên bản gần đây nhất của cURL là 7.42.1. Mọi trợ giúp đều được hoan nghênh!

+1

Bạn đã xem [this] (http://stackoverflow.com/questions/20171165/) chưa? – uesp

+0

Xem lại câu hỏi của tôi. (Các liên kết màu xanh) (= – beshtaa

Trả lời

10

Đã xảy ra sự cố, cuối cùng cũng đã hoạt động. Tôi đã tải xuống curl-7.42.1.zip từ official website. Trong kho lưu trữ, bạn sẽ tìm thấy mã nguồn và winbuild/BUILD.WINDOWS.txt, về cơ bản chứa các hướng dẫn mà tôi đã theo. Tôi giả định rằng nó đã được giải nén vào C: \ curl-7.42.1.

Mở Visual Studio command prompt tọa lạc tại

C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ Tools \ Shortcuts

này sẽ tự động cài đặt các biến môi trường cần thiết để sử dụng Visual Các công cụ phòng thu như trình biên dịch. Sau đó di chuyển đến thư mục winbuild và gọi

nmake/f chế độ Makefile.vc = dll

như mô tả trong tập tin văn bản tôi đã đề cập ở trên.

Điều đó sẽ tạo ra các thư mục

C: \ curl-7.42.1 \ xây dựng \ libcurl-vc-x86-release-dll-ipv6-sspi-winssl

chứa libcurl. dll, libcurl.lib và các tệp tiêu đề cần thiết. Hãy đổi tên nó thành C:\curl-7.42.1\builds\release: 'D

  1. Sau đó, mở dự án của bạn.
  2. Mở thuộc tính của dự án của bạn.
  3. Đảm bảo bạn chọn Phát hành làm cấu hình (góc trên cùng bên trái)!
  4. Điều hướng đến VC++ Directories > Include directories và thêm C:\curl-7.42.1\builds\release\include
  5. Thêm C:\curl-7.42.1\builds\release\lib vào VC++ Directories > Library directories.
  6. Đi đến Linker > Input > Additional Dependencies và thêm libcurl.lib.
  7. Cuối cùng, sao chép C:\curl-7.42.1\builds\release\bin\libcurl.dll vào thư mục dự án của bạn.

Điều đó cần thực hiện thủ thuật! : D Nếu bạn muốn sử dụng cURL trong chế độ gỡ lỗi, bạn có thể làm gần như giống nhau, biên dịch lại bằng cách sử dụng nmake /f Makefile.vc mode=dll debug=yes, đi đến thuộc tính của dự án, thêm đường dẫn thư mục mới được tạo (thay libcurl.lib thành libcurl_debug.lib) và bạn nên làm .

+0

Cảm ơn câu trả lời nhanh chóng, tôi sẽ cố gắng sớm! – beshtaa

+1

Với nước mắt trong mắt và một tách cà phê trong tay tôi có thể tiếp tục, bởi vì bạn đã làm cho tôi ngày. rất nhiều! Chỉnh sửa: Vui lòng thay đổi * Makefile.vs * thành * Makefile.vc * – beshtaa

+0

Rất vui được nghe, bạn được chào đón! :) Đã chỉnh sửa bài đăng của tôi như bạn đã chỉ ra. – Jeinzi

0

Tôi gặp vấn đề tương tự. Tôi đã tải xuống curl từ https://github.com/curl/curl. bạn thực sự có thể biên dịch trực tiếp với Visual Studio 2013 (nhưng hãy cẩn thận với các thông số cài đặt: x64 với bản phát hành). Sự khác biệt chính là nó cung cấp cho bạn libcurl_imp.lib. Sau đó, tất cả những gì bạn phải làm là thiết lập các biến môi trường như mô tả ở trên. Chỉ muốn đề cập đến, bạn sẽ phải sử dụng libcurl_imp.lib hơn là libcurl.lib trong các phụ thuộc bổ sung (Tôi nghi ngờ thay đổi này là do phiên bản mới của curl).

Các vấn đề liên quan