Создание и использование буферов протокола Google

В настоящее время я работаю над проектом и пытаюсь реализовать протокольные буферы для работы в качестве формата сериализации для хранения данных на локальном компьютере, а затем для последующего чтения. Некоторые функции протокольных буферов кажутся идеальными для этого проекта, поэтому мне не терпелось протестировать их, но я столкнулся с некоторыми проблемами.

Однако до сих пор я даже не смог пройти достаточно далеко, чтобы протестировать протокольные буферы. Я загрузил самый последний zip-файл (версия 2.4.1) на свою машину с Windows. Я прочитал файл install.txt, расположенный в корне папки, но он был для систем на базе Unix. Затем я увидел, что он поставляется с папкой vsprojects, и прочитал приведенные там инструкции. По сути, все, что мне сказали сделать, это открыть решение, а затем собрать все решение либо в Debug, либо в Release. Я сразу же получил несколько ошибок о том, что «config.h» не найден.

Я снова проверил инструкции Unix, и первый шаг был...

  1. cd' to the directory containing the package's source code and type './configure' to configure the package for your system. If you're usingcsh' в старой версии System V вам может понадобиться ввести sh ./configure' instead to preventcsh' при попытке выполнить саму 'configure'.

Запуск `configure' занимает некоторое время. Во время работы он выводит несколько сообщений о том, какие функции он проверяет.

Поэтому я загрузился в ubuntu, которым редко пользуюсь, и попытался следовать этим инструкциям. Шаг, указанный выше, прошел нормально, и я даже смог перейти к следующему шагу и «создать» проект, но затем, когда пришло время использовать «make install», я получил следующие ошибки:

ross@ubuntu:~/Desktop/protobuf-2.4.1$ make install
Making install in .
make[1]: Entering directory `/home/ross/Desktop/protobuf-2.4.1'
make[2]: Entering directory `/home/ross/Desktop/protobuf-2.4.1'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/local/lib/pkgconfig" || /bin/mkdir -p "/usr/local/lib/pkgconfig"
/bin/mkdir: cannot create directory `/usr/local/lib/pkgconfig': Permission denied
make[2]: *** [install-pkgconfigDATA] Error 1
make[2]: Leaving directory `/home/ross/Desktop/protobuf-2.4.1'
make[1]: *** [install-am] Error 2
make[1]: Leaving directory `/home/ross/Desktop/protobuf-2.4.1'

make: * [install-recursive] Ошибка 1

В основном я использую Windows для разработки, и весь проект, над которым я сейчас работаю, делается в Windows, поэтому я немного обеспокоен. Удалось ли кому-нибудь создать протокольные буферы в Windows или Linux?

Спасибо


person Ross Hays    schedule 14.12.2011    source источник


Ответы (1)


Вы не можете использовать make install как собственный пользователь, когда пытаетесь установить его для всей системы. Либо используйте sudo make install, если у вас есть права sudo, либо станьте root любым другим возможным способом, а затем запустите его.

Если у вас нет прав администратора, вы можете запустить ./configure --prefix=$HOME/protobuffers, скомпилировать и снова запустить make install, они будут установлены в вашем домашнем каталоге в подкаталоге с именем protobuffers. Обратите внимание, что после этого вы можете настроить свой LD_LIBRARY_PATH в профиле, чтобы иметь возможность находить библиотеки. Если вам нужно только protoc, это должно помочь.

--- редактировать ---

Кстати говоря, protoc также доступен для Windows, и вы также можете использовать их там. Вы можете загрузить его здесь< /а>.

person favoretti    schedule 14.12.2011
comment
Хорошо, это сработало для Linux. Думаете, у вас нет полезных советов по Windows? Я проверил, что первый шаг для запуска configure не сгенерировал config.h, как я надеялся... - person Ross Hays; 15.12.2011
comment
@roflha Извини, приятель, не могу помочь, сильный пользователь Mac, и сейчас у меня нет под рукой Windows vm, чтобы построить его для тебя. - person favoretti; 15.12.2011
comment
Не проблема. Я просто позволю этому посидеть немного дольше, чтобы посмотреть, знает ли кто-нибудь, что делать с окнами. Спасибо за ответ! Редактировать: И подобные вещи заставили меня переключиться на Mac в качестве следующего компьютера... - person Ross Hays; 15.12.2011
comment
@Roflha А, подожди. Каталог vsprojects имеет предварительно сгенерированный файл config.h. Поместите его в корневую папку protobuf и попробуйте снова нажать эту кнопку сборки. - person favoretti; 15.12.2011
comment
Это очень странно. Я пытался найти его, но его нет в моем каталоге. Перезагрузил и теперь он у меня есть. Тестирование сейчас. - person Ross Hays; 15.12.2011