在Windows上安装协议缓冲区

时间:2012-11-28 23:07:05

标签: java windows cygwin mingw protocol-buffers

我无法找到在Windows x64平台上安装Google协议缓冲区(包括编译器)的明确说明。

我查看了编译器和源代码的README文件说明:

对于编译器:要安装,只需将此二进制文件放在PATH中的某个位置

我将系统变量添加到Path: PROTOC'C:\ dev_tools \ protoc-2.4.1-win32'

我坚持使用Cygwin安装Protocol Buffers源代码。我试过跟随 自述文件中提供的Unix指令:

构建和安装C ++协议缓冲区运行时和协议 缓冲编译器(protoc)执行以下操作:

$ ./configure   $ make   $ make check   $ make install

如果“make check”失败,您仍然可以安装,但很可能 此库的某些功能无法在您的系统上正常运行。 自行承担风险。

“make install”可能需要超级用户权限。

有关configure和make的高级用法信息,请参阅INSTALL.txt。

**提示安装位置**

默认情况下,程序包将安装到/ usr / local。然而,   在许多平台上,/ usr / local / lib不是LD_LIBRARY_PATH的一部分。   您可以添加它,但可能更容易安装到/ usr   代替。为此,请按如下方式调用configure:

./ configure --prefix = / usr

我得到' - bash:./ configure:没有这样的文件或目录' 有人可以提供明确而详细的步骤来实现这项目吗?

---------------的更新 -----------------

我转而使用MSYS / MINGW32代替 我按照link中的说明进行操作。现在我坚持以下:

当我运行'./configure'命令时,我得到以下错误:
检查如何运行C ++预处理器... / lib / cpp
configure:error:C ++预处理器“/ lib / cpp”无法进行健全性检查'

因此,make,make install命令都不起作用。
例如: make:* 未指定目标且未找到makefile。停止。**

由于

10 个答案:

答案 0 :(得分:9)

在Windows上有一个用于编译protobuf的完整文档文件:

您需要7-zip,Cmake和Visual Studio。

无论如何,使用持续集成工具(如Travis或Appveyor)的一个意想不到的副作用是始终存在最新且可用的构建脚本。我偶尔会看到* { font-family: 'Roboto', sans-serif; } .navigation { list-style-type: none; margin: 0; padding: 20px 0; } .navigation li { display: inline; font-family: 'Roboto', sans-serif; font-weight: 400; font-size: 12px; margin-right: 25px; text-transform: uppercase; } appveyor.yml文件。

travis_config.yml

您需要>>> git clone -b v3.1.0 https://github.com/google/protobuf.git >>> cd protobuf >>> curl -L -o release-1.7.0.zip https://github.com/google/googlemock/archive/release-1.7.0.zip >>> 7z x release-1.7.0.zip >>> del /Q release-1.7.0.zip >>> rename googlemock-release-1.7.0 gmock >>> curl -L -o release-1.7.0.zip "https://github.com/google/googletest/archive/release-1.7.0.zip" >>> 7z x release-1.7.0.zip >>> del /Q release-1.7.0.zip >>> rename googletest-release-1.7.0 gtest >>> move gtest gmock >>> set generator=Visual Studio 12 Win64 >>> set vcplatform=x64 >>> mkdir build_msvc >>> cd build_msvc >>> cmake -G "%generator%" -Dprotobuf_BUILD_SHARED_LIBS=%BUILD_DLL% -Dprotobuf_UNICODE=%UNICODE% ../cmake >>> msbuild protobuf.sln /p:Platform=%vcplatform% || goto error curl拥有它)以及解析Git Bash7z.exe可执行文件的路径。

我成功地使用Visual Studio 2015在Windows 10 x64计算机上构建了protobuf编译器。

答案 1 :(得分:6)

如果您只想编译ProtoBuf定义,则可以直接在ProtoBuf GitHub版本页面上下载precompiled binaries of protoc for all platforms

至少从2015年开始,它们就已经预编译了二进制文件,但是在许多下载之间很容易忽略它们。

答案 2 :(得分:3)

我是在Windows 10上构建 protobuf v2.4.1 的,如下所示:

  • git clone https://github.com/protocolbuffers/protobuf.git;
  • cd protobuf;
  • git checkout v2.4.1;
  • cd vsprojects
  • 在Visual Studio 2019中打开protobuf.sln
  • 按构建解决方案并出现许多错误:最小未定义和最大未定义 在文件protobuf / stubs / common.h中添加下一个代码:
#if defined(_WIN32) && !defined(min)
#define min(a,b) __min(a,b)
#define max(a,b) __max(a,b)
#endif
  • 按构建解决方案并接受错误:致命错误C1189:“ #error:hash_map已过时,将被删除……。
  • 添加编译定义 -D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS 已解决的问题
  • 接下来我遇到了错误“ 错误C2664:“ std :: pair std :: make_pair(_Ty1 &&,_ Ty2 &&)noexcept”…
  • 在文件src \ google \ protobuf \ compiler \ command_line_interface.cc中,我将字符串“ proto_path_.push_back(make_pair <字符串,字符串>(虚拟路径,disk_path)); ”修改为“ proto_path_.push_back(make_pair(virtual_path,disk_path));
  • 按构建解决方案。所有构建都成功。(测试项目必须在没有测试框架的情况下构建)

    安装:

  • 运行extract_includes.bat将所有公共标头复制到一个单独的“ include”目录(在顶级程序包目录下)。
  • 将include目录的内容复制到要放置标题的位置
  • 在放置构建工具的任何地方复制protoc.exe
  • 在放置库的任何地方复制libprotobuf.lib,libprotobuf-lite.lib和libprotoc.lib。

答案 3 :(得分:1)

下载protoc-2.5.0-win32.zip

https://github.com/protocolbuffers/protobuf/releases/tag/v2.5.0

然后安装,只需将此二进制文件放在PATH中的某个位置

答案 4 :(得分:1)

用于在 windows 中安装 proto buff

转到https://github.com/protocolbuffers/protobuf/releases

向下滚动并下载 Windows 兼容的 zip

Binary File

下载 zip 文件后,将其解压缩到 C:/

只需复制路径, C:\protoc-3.17.3-win64\bin 并将其设置为环境变量的路径

path setup

希望,这会有所帮助!

答案 5 :(得分:1)

使用chocolatey

choco install protoc

答案 6 :(得分:0)

我建议在Windows上使用 vcpkg 工具。这是一步一步 manual

关于 protobuf ,首先检查您有哪些选项(以cmd为单位):

vcpkg搜索协议

enter image description here

接下来安装所需的软件包: vcpkg安装protobuf:x64-windows-static

在冒号后注意 x64-windows-static -这是 triplet 。检查所有 vcpkg帮助三重音

然后转到您的路径\ vcpkg-master \ packages \ protobuf_x64-windows-static \

enter image description here

现在您可以设置环境变量了。

答案 7 :(得分:0)

现在protobuf是Visual Studio中的NuGet程序包。只要去拿那个。

答案 8 :(得分:0)

我用巧克力味安装了它,效果很好。

choco --install -y protoc

答案 9 :(得分:0)

简单ref

choco install protoc --pre