Как установить protobuf на 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.

Protocol Buffers (Protobuf) is a free and open-source cross-platform library used to serialize structured data. It is useful in developing programs to communicate with each other over a network or for storing data. The method involves an interface description language that describes the structure of some data and a program that generates source code from that description for generating or parsing a stream of bytes that represents the structured data. Google developed Protocol Buffers for internal use and provided a code generator for multiple languages under an open-source license.

Features:

  • Protocol buffers currently support generated code in Java, Python, Objective-C, and C++. With the new proto3 language version, you can also work with Dart, Go, Ruby, and C#, with more languages to come.
  • Protocol buffers, usually referred as Protobuf, is a protocol developed by Google to allow serialization and deserialization of structured data. Google developed it with the goal to provide a better way, compared to XML, to make systems communicate

Downloading & Installing:

Step 1:  At first, we have to search “protobuf releases” in the browser.

Step 2: Then we have to click on the first link by Github.

Step 3: Then we have to scroll down. There we will find all zip files for all operating systems. Based on your operating system bit version (64 bit or 32 bit). You have to download the specific one.

Step 4: Then the downloaded file has to copy first.

Step 5: Then the copied file has to be paste on the C drive of your pc. 

Step 6: Then you have to enter the folder & then enter it in the bin folder. There you will find protoc.exe file. 

Step 7: Then you have to copy the path.

Step 8: Then in the search bar of your computer you have to search for “Edit the system environment variable”.

Step 9: Then you have to go for the “Environment Variable” button. Look down at the ‘System variables’ box and double click on ‘Path’ to add a new path.

Step 10: Then you have to click on the “New” button & paste the path here.

Step 11: Then you have to click “Ok” every time & close it.

Step 12: Then, at last, we will check that it works or not. Open the command prompt & you have to write “protoc” command. Then all details will be shown on the command prompt. Then it is ready to use.

Last Updated :
12 Aug, 2022

Like Article

Save Article

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.

Профиль пользователя protobuf

Буферы протокола являются гибкими, эффективными и автоматизированными механизмами для сериализации структурированных данных, таких как XML, но меньше, быстрее и проще. Все, что вам нужно сделать, это определить, как вы хотите структурировать свои данные, и тогда вы сможете легко записывать и считывать структурированные данные в различные потоки данных и использовать различные языки, используя специально сгенерированный исходный код. Вы даже можете обновить свои структуры данных, не нарушая программы, которые были скомпилированы в «старый» формат.
Google protobuf — это гибкий и эффективный протокол для сериализации данных. По сравнению с форматами XML и JSON, protobuf меньше, быстрее и удобнее. Protobuf, также называемый буфером протокола, является форматом обмена данными Google, который не зависит от языка и платформы. Google protobuf является кросс-языковым и поставляется с компилятором (protoc), вам нужно использовать его только для компиляции, он может быть скомпилирован в Java, Python, C ++, C #, Go и другой код, а затем вы можете использовать его напрямую, не нужно писать Другой код поставляется с разобранным кодом.
Google предоставляет реализации на нескольких языках: Java, c #, c ++, Go и Python, каждый из которых включает в себя файлы компилятора и библиотеки для соответствующего языка. Поскольку это двоичный формат, он намного быстрее, чем использование xml и json для обмена данными. Он может использоваться для обмена данными между распределенными приложениями или обмена данными в гетерогенных средах. Как двоичный формат передачи данных с превосходной эффективностью и совместимостью, он может использоваться во многих областях, таких как передача по сети, файлы конфигурации и хранение данных.

1. Файл .proto является важным файлом для protobuf, который определяет структуру сериализованных данных. 3 шага к использованию protobuf:
Первый шаг — определить формат сообщения в файле .proto.
Вторым шагом является компиляция файла .proto с помощью компилятора protobuf.
Третий шаг — писать или читать сообщения, используя соответствующий API protobuf, такой как C ++ / Java.

Официальная документация:https://developers.google.com/protocol-buffers/docs/overview

установка протобуф

Исходный код protoc и предварительно скомпилированные пакеты для каждой системы:https://github.com/protocolbuffers/protobuf/releases
1. Выберите соответствующий установочный файл для загрузки

2.Добавить в переменные среды

Установка завершена!

Как использовать protobuf

1. Основное использование

protoc - версия # Просмотр версии protoc

2. Пример транскодирования

Переключитесь на путь к файлу Proto, который вы хотите использовать, откройте окно cmd и выполните следующую команду

protoc -I = адрес источника --java_out = адрес назначения адрес источника / xxx.proto

При генерации здесь java_package, указанный в proto, используется для полной генерации пути, поэтому целевой адрес не обязательно должен включать путь к java_package и более поздним, например: option java_package = «com.test.protocol»; тогда будет сгенерирован com / test / протокол / XXX.java
Описание параметра
-I: в основном используется для указания каталога, в котором находится файл определения сообщения .proto, который должен быть скомпилирован, то есть путь к файлу включения, который может появиться. Этот параметр можно указать одновременно. Указанный здесь путь не может быть пустым. Если это текущий каталог, используйте. Непосредственно. Если это подкаталог, используйте относительный путь непосредственно подкаталога, например: foo / bar / baz. Если путь к файлу для компиляции указан как baz / test.proto, затем пишите -I = foo / bar, а не весь путь до baz.

Например, выполните команду:

protoc -I=. --java_out=../../../../ beans/*.proto apis/*.proto *.proto

Solution 1:[1]

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.

Solution 2:[2]

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.

Solution 3:[3]

Solution 4:[4]

Solution 5:[5]

Solution 6:[6]

I was build protobuf v2.4.1 on Windows 10 as follows:

  • git clone https://github.com/protocolbuffers/protobuf.git;
  • cd protobuf;
  • git checkout v2.4.1;
  • cd vsprojects
  • open protobuf.sln in Visual Studio 2019
  • Press build solution and take many errors: min undefined and max undefined
    Add in file protobuf/stubs/common.h next code:
#if defined(_WIN32) && !defined(min)
#define min(a,b) __min(a,b)
#define max(a,b) __max(a,b)
#endif
  • Press build solution and take error: fatal error C1189: “#error: hash_map is deprecated and will be REMOVED….
  • Add compile definition -D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS solved problem
  • Next I had error “error C2664: «std::pair std::make_pair(_Ty1 &&,_Ty2 &&) noexcept”…
  • In file src\google\protobuf\compiler\command_line_interface.cc I modified string “proto_path_.push_back(make_pair< string, string >(virtual_path, disk_path));” to “proto_path_.push_back(make_pair(virtual_path, disk_path));
  • Press build solution. All build succeed.(Tests projects not build without test framework)

    INSTALL:

  • Run extract_includes.bat to copy all the public headers into a separate «include» directory (under the top-level package directory).
  • Copy the contents of the include directory to wherever you want to put headers
  • Copy protoc.exe wherever you put build tools
  • copy libprotobuf.lib, libprotobuf-lite.lib, and libprotoc.lib wherever you put libraries.

Solution 7:[7]

I installed it with chocolatey and it worked perfectly.

choco --install -y protoc

Solution 8:[8]

I’d recommend using vcpkg tool on windows. Here is step by step manual.

Regarding protobuf, firstly check what options you have (in cmd):

vcpkg search protobuf

enter image description here

Next install the required package:
vcpkg install protobuf:x64-windows-static

Notice x64-windows-static after the colon — this is the triplet. Check vcpkg help triplet for all of them.

Then go to your_path\vcpkg-master\packages\protobuf_x64-windows-static\

enter image description here

Now you can set your environment variables.

Solution 9:[9]

Now protobuf is a NuGet package in Visual Studio. Just go get that.

Solution 10:[10]

just easy ref

choco install protoc --pre

Solution 11:[11]

choco install protoc —pre worked for, make sure your in an elevated state.

this is the output when I ran protoc from gitbash

$ protoc
Usage: C:\ProgramData\chocolatey\lib\protoc\tools\bin\protoc.exe [OPTION] PROTO_FILES
Parse PROTO_FILES and generate output based on the options given:
-IPATH, —proto_path=PATH Specify the directory in which to search for

adding it to my $path environment variables didn’t work from me as expected.

  • Как установить proteus на windows 10
  • Как установить prometheus на windows
  • Как установить proxy на windows 10
  • Как установить powerpoint на компьютер windows 10
  • Как установить putty на windows 10