protobuf_build

Компиляция под Linux — protobuf-c

Protocol Buffers - язык описания разных структур данных для сериализации - аналог XML от компании Google, которые утверждают, что это быстрее, компактнее и вообще круче. Короче говоря, штука полезная, многими используется.

Для начала скомпилируем все это дело под Linux. Изначально компилятор protobuf был создан для языка С++, но мы будем собирать под чистый С, что не освобождает нас от надобности в сборке протобуфера под С++.

Я написал небольшой скрипт на bash, который сам качает исходники с официальных репозиториев, распаковывает и собирает. Поэтому достаточно изначально поставить несколько требуемых библиотек и запустить предлагаемый скрипт. Для сборки потребуется компиляторы gcc-g++. Если у вас DEB-дистрибутив (Debian, Ubuntu), то можно доставить следующее:

# apt-get install build-essential

В случае RPM (CentOS, Fedora), то можно поставить gcc-g++ и библиотеку glibc-headers.

# yum install gcc gcc-c++

# yum install glibc-headers

Этого вроде достаточно для старта скрипта для сборки protobuf. Если при сборке вы обнаружили другие зависимости, буду признателен, за комментарии к этой статье по этому поводу!

Далее будет приведен скрипт, предварительно настроив который, можно будет просто запустить и ждать. Главный параметр, на который следует обратить внимание - BASE_PATH. Путь к базовому каталогу, где все будет лежать. Изначально, путь указан как $HOME/protobuf - то есть в домашнем каталоге пользователя в директории protobuf. Если нужно собрать где то в другом месте, то главное надо поменять значение этой переменной. Если сборка происходит там, где недостаточно прав пользователя (скрипт выполнится некорректно), то надо запускать с правами суперпользователя.

После сборки в каталоге $BASE_PATH/$PROTOBUF_BUILD_DIR будет лежать готовый компилятор с библиотеками protobuf, а в $BASE_PATH/$PROTOBUF_C_BUILD_DIR будет находится protobuf-c.

Копируем скрипт в какой нибудь файл, даем ему права на исполнение, запускаем. Я сам использовал этот скрипт на CentOS 7 и Ubuntu 14.04 - все работает.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">