Как получить предварительно скомпилированный бинарный файл linux для protoc (буферы протокола)? - PullRequest
7 голосов
/ 03 августа 2011

Мой сервер сборки основан на Linux. Мне нужен protoc, чтобы интегрировать его в мою систему сборки на основе муравьев.

Я использую следующие в build.xml для того же:

    <exec executable="tools/protoc.exe" failonerror="true">
        <arg value="--java_out=../protos/java/generated" />
        <arg value="--proto_path=../protos/proto" />
        <arg value="../protos/proto/*.proto" />
    </exec>

Я нашел бинарный файл windows, но не нашел бинарный файл linux для protoc.

Любая помощь в поиске одного или создании статически связанного двоичного файла с протоколом будет хороша.

Ответы [ 5 ]

6 голосов
/ 03 августа 2011

Вы пытались просто загрузить основной проект protobuf и следовать инструкциям по установке ?Кажется, я помню, что это довольно просто, если вам нужен только двоичный файл:

$ ./autogen.sh
$ ./configure
$ make

(в этом случае вам, вероятно, не нужен make install, если вам нужен только двоичный файл protoc. Просто выяснитегде он был построен и скопируйте его.)

3 голосов
/ 17 марта 2016

Предварительно скомпилированные двоичные файлы для последней версии находятся на официальной странице релизов на GitHub Предыдущие версии можно найти в репозитории Maven .

1 голос
/ 28 мая 2016

В Ubuntu (с 12.04) вы можете найти protobuf-compiler в хранилище.

sudo apt-get install protobuf-compiler

$> protoc --version
libprotoc 2.6.1

И вы также можете установить заголовочные файлы:

sudo aptitude install libprotobuf-dev
1 голос
/ 20 мая 2016

Для Java вы также можете использовать https://github.com/os72/protoc-jar, который уже содержит двоичные файлы для разных платформ.

0 голосов
/ 15 февраля 2019

Если вы хотите скомпилировать только protoc двоичный файл для любой платформы , выполните следующие действия:

В каталоге проекта protobuf

./autogen.sh
cd protoc-artifacts
./build-protoc.sh linux x86_64 protoc

Однажды protoc.exe встроен в protobuf/protoc-artifacts/target/linux/x86_64/protoc переименуйте его в protoc

mv protobuf/protoc-artifacts/target/linux/x86_64/protoc.exe protobuf/protoc-artifacts/target/linux/x86_64/protoc
...