build立和使用Google Protocol Buffers

我目前正在一个项目上工作,我试图实现协议缓冲区作为一个序列化格式来存储在本地计算机上的数据,然后回读一下。 协议缓冲区的一些function对于这个项目来说似乎很完美,所以我急于testing它,但是我遇到了一些问题。

到目前为止,我还没有足够的时间去testing协议缓冲区。 我下载了最新的zip文件(版本2.4.1)到我的Windows机器。 我通过位于文件夹根目录的install.txt读取,但是它是基于Unix的系统。 然后我看到它带有一个vsprojects文件夹,并阅读那里列出的说明。 基本上,我被告知要做的是打开一个解决scheme,然后在Debug或Release中构build整个解决scheme。 我立即收到了几个有关“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 using cd' to the directory containing the package's source code and type './configure' to configure the package for your system. If you're using在旧版本的System V上cd' to the directory containing the package's source code and type './configure' to configure the package for your system. If you're using csh,则可能需要键入sh ./configure' instead to prevent csh尝试执行configure。

运行`configure'需要一段时间。 在运行时,它会打印一些消息,告诉它正在检查哪些function。

所以我启动到我很less使用的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中进行的,所以我有点担心。 任何人有没有运气build立协议缓冲区在Windows或Linux?

谢谢

当您尝试在系统范围内make install ,无法make install作为自己的用户进行安装。 如果你有sudo权限,可以使用sudo make install ,或者以任何其他可能的方式成为root,然后运行它。

如果你没有管理员权限,你可以运行./configure --prefix=$HOME/protobuffers ,再次编译并运行make install ,它会把它们安装在你的home目录中,称为protobuffers 。 请注意,您可能需要在配置文件中调整您的LD_LIBRARY_PATH ,以便能够查找库。 如果你只需要protoc ,那就应该这样做。

—编辑—

说到这个,protoc也可以用于windows,你也可以在那里使用它们。 你可以在这里下载。