Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Install Protocol Buffers on Windows

I am unable to find clear instructions to install Google Protocol Buffers (including compiler) on Windows x64 platform.

I went through the instructions README file for compiler and source:

For Compiler: To install, simply place this binary somewhere in your PATH

I added system variable to Path:

PROTOC 'C:\dev_tools\protoc-2.4.1-win32' 

I am stuck on installing Protocol Buffers source using Cygwin. I tried following Unix instructions provided in the readme file:

To build and install the C++ Protocol Buffer runtime and the Protocol Buffer compiler (protoc) execute the following:

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

If make check fails, you can still install, but it is likely that some features of this library will not work correctly on your system. Proceed at your own risk.

make install may require superuser privileges.

For advanced usage information on configure and make, see INSTALL.txt.

** Hint on install location **

By default, the package will be installed to /usr/local. However, on many platforms, /usr/local/lib is not part of LD_LIBRARY_PATH. You can add it, but it may be easier to just install to /usr> instead. To do this, invoke configure as follows:

./configure --prefix=/usr 

I get

-bash: ./configure: No such file or directory' 

Can some one provide clear and detailed steps to make this work?

UPDATE

I switched to using MSYS/MINGW32 instead and I followed instructions given in this link. Now I am stuck with following:

When I run the './configure' command I get following error:
checking how to run the C++ preprocessor... /lib/cpp
configure: error: C++ preprocessor "/lib/cpp" fails sanity check'

As a result, none of the make, make install commands work. For eg:

make: No targets specified and no makefile found. Stop. 
like image 887
aces. Avatar asked Nov 28 '12 23:11

aces.


People also ask

How do I install protobuf on Windows Golang?

Run `go get -u github.com/golang/protobuf/protoc-gen-go` from command prompt. This should install the binary to %GOPATH%/bin. Add `%GOPATH%/bin` to your PATH environment variable.

Are protocol buffers still used?

In particular, it was designed to be smaller and faster than XML. Protocol Buffers are widely used at Google for storing and interchanging all kinds of structured information.


2 Answers

If you just want to compile ProtoBuf definitions, you can download precompiled binaries of protoc for all platforms right on the ProtoBuf GitHub releases page.

They had precompiled binaries at least since 2015, but it's easy to overlook them in between the many downloads.

like image 57
Florian Sesser Avatar answered Sep 22 '22 07:09

Florian Sesser


There is a whole documentation file for compiling protobuf on Windows :

  • https://github.com/google/protobuf/blob/master/src/README.md#c-installation---windows
  • https://github.com/google/protobuf/blob/master/cmake/README.md

You'll need 7-zip, Cmake and Visual Studio.

Anyway, one of the unexpected side-effects of using a Continuous Integration tool (like Travis or Appveyor) is that there is always a up-to-date and working build script available. I happen to always look at appveyor.yml and travis_config.yml files whenever they exists.

>>> 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 

You'll need curl (Git Bash has it) as well as resolving paths for the 7z.exe and Msbuild.exe executables.

I successfully managed to build the protobuf compiler on a Windows 10 x64 machine with Visual Studio 2015.

like image 24
lucasg Avatar answered Sep 22 '22 07:09

lucasg