Compile Protocol Buffers 2.6.1 using VS 2015?

时间:2015-07-28 16:12:20

标签: c++ protocol-buffers visual-studio-2015

I want to use ProtoBuf 2.6.1 with a VS 2015 C++ application. However, I can't link against libprotobuf.lib compiled using VS 2013. I tried to compile libprotobuf.lib again using VS 2015, but am running into compile errors, complaining about <hash_map> and <hash_set> being deprecated.

It looks like the cmake files for ProtoBuf at the GitHub repo are now all set up for ProtoBuf 3.0. Is it still possible to compile libprotobuf using VS 2015?

3 个答案:

答案 0 :(得分:3)

要使单元测试运行,您还需要修改一些测试,这些测试将字符串与中间的预处理器宏连接起来。只需在宏的两侧添加一个空格,编译器解析器就可以再次处理。

在创建临时文件名时,由于目录转发和反斜杠,有几个测试失败,但这些并不重要。

否则没问题。 PS我实际上无法检查,但这可能是我使用v3 alpha而不是261的经历,因为我是从记忆中做到的。

两者都在RC上构建好,我认为我们的Jenkins工作已经重建了他们,因为他们已经转到2015年的RTM教授

答案 1 :(得分:3)

不幸的是,cmake build从protobuf v3.0.0-alpha开始可用。

我使用以下非官方cmake scripts成功构建了带有MSVC 2015的protobuf v2.6.1。您需要从该存储库分支updated_for_v2.6.1。

对于该克隆两个存储库 - protobufprotobuf-cmake

protobuf克隆中的checkout标记v2.6.1和protobuf-cmake中的分支原点/ updated_for_v2.6.1

  

cmake&lt;这里是protobuf-cmake clone的路径&gt; -DPROTOBUF_ROOT = LT;这里protobuf克隆的路径&gt; -G&#34; Visual Studio 14 2015&#34; -DCMAKE_INSTALL_PREFIX =&lt;这里安装目标的路径&gt;

然后像往常一样从打开的解决方案或使用&#34; cmake --build构建它。&#34;命令

HTH。

答案 2 :(得分:2)

您可以参考build error with Visual Studio 2015 #314

  

感谢您提供该报告,但我们目前不支持Visual Studio 2015。在我们正式切换到Visual Studio 2015之前,请使用Visual Studio 2013。

     

请注意,我们确实有计划切换到Visual Studio 2015,但我现在想关注其他高优先级问题。如果您对Mozc for Windows中Visual Studio 2015支持的进展感兴趣,请订阅#315。

     

也就是说,修复构建失败并不是那么困难。我已将概念验证更改518f41a上传到support_msvs_2015分支,仅供您参考。