2015-07-28 13 views
6

Tôi muốn sử dụng ProtoBuf 2.6.1 với ứng dụng VS 2015 C++. Tuy nhiên, tôi không thể liên kết với libprotobuf.lib được biên dịch sử dụng VS 2013. Tôi đã cố gắng biên dịch lại libprotobuf.lib bằng cách sử dụng VS 2015, nhưng đang chạy vào lỗi biên dịch, phàn nàn về việc không được chấp nhận về số <hash_map><hash_set>.Bộ đệm giao thức biên dịch 2.6.1 sử dụng VS 2015?

Dường như các tệp cmake cho ProtoBuf tại repo GitHub giờ đây đã được thiết lập cho ProtoBuf 3.0. Vẫn có thể biên dịch libprotobuf bằng cách sử dụng VS 2015?

+1

Là [this] (http://stackoverflow.com/questions/30811441/how-to-fix-hash-map-is-depracated-and-will-be-removed-please-use-unordered) giúp đỡ? – CristiFati

+3

Xác định biên dịch '_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS'. Tuy nhiên, cuối cùng tôi đã lấy tập tin ** hash.h ** mới nhất từ ​​GitHub hỗ trợ các trình biên dịch MSVC mới hơn. – Ionian316

Trả lời

3

Để chạy thử nghiệm đơn vị, bạn cũng cần phải sửa đổi một vài thử nghiệm nối các chuỗi với macro tiền xử lý ở giữa. Chỉ cần thêm một không gian ở hai bên của macro và trình phân tích cú pháp trình biên dịch có thể đối phó lại.

Một vài thử nghiệm không hoạt động do thư mục chuyển tiếp so với dấu gạch chéo ngược khi tạo tên tệp tạm thời nhưng không quan trọng.

Nếu không có sự cố. PS Tôi thực sự không thể kiểm tra nhưng đó có thể là kinh nghiệm của tôi với v3 alpha thay vì 261 khi tôi đang làm điều này từ bộ nhớ.

Cả hai xây dựng OK trên RC và tôi nghĩ rằng công việc của chúng tôi Jenkins đã xây dựng lại chúng kể từ khi chuyển đến năm 2015 prof RTM

+0

Cảm ơn thông tin. – Ionian316

3

Thật không may, cmake xây dựng có sẵn kể từ protobuf v3.0.0-alpha.

Tôi đã xây dựng thành công protobuf v2.6.1 với MSVC 2015 bằng cách sử dụng lệnh không chính thức cmake scripts. Bạn cần branch_for_v2.6.1 từ kho lưu trữ đó.

Để sao chép cả hai kho lưu trữ - protobufprotobuf-cmake.

Thanh toán thẻ v2.6.1 trong bản sao protobuf và chi nhánh gốc/updated_for_v2.6.1 trong protobuf-cmake

cmake < đây đường dẫn đến Protobuf-cmake bản sao> -DPROTOBUF_ROOT = < đây đường dẫn đến Protobuf bản sao> - G "Visual Studio 14 2015" -DCMAKE_INSTALL_PREFIX = < đây con đường để cài đặt target>

Sau đó xây dựng nó như bình thường hoặc từ giải pháp mở hoặc sử dụng "cmake --build." command

HTH.

2

Bạn có thể tham khảo build error with Visual Studio 2015 #314.

Cảm ơn bạn đã báo cáo nhưng chúng tôi không hỗ trợ Visual Studio 2015 ngay bây giờ. Vui lòng sử dụng Visual Studio 2013 thay thế cho đến khi chúng tôi chính thức chuyển sang Visual Studio 2015.

Lưu ý rằng chúng tôi có kế hoạch chuyển sang Visual Studio 2015, nhưng tôi muốn tập trung vào các vấn đề ưu tiên cao khác vào lúc này. Hãy đăng ký # 315 nếu bạn quan tâm đến sự tiến bộ trên Visual Studio 2015 hỗ trợ trong Mozc cho Windows.

Điều đó nói rằng, chỉ sửa lỗi xây dựng không phải là quá khó khăn. Tôi đã tải lên thay đổi bằng chứng về khái niệm 518f41a thành chi nhánh support_msvs_2015 chỉ để bạn tham khảo.

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