mac下Protocolbuf安装

1.安装gcc
判断有没有安装gcc,命令行输入gcc --version查看版本号
如果没有安装的话,选择xcode->preferences ->Command line tools安装

安装完成后,输入gcc --version,正常情况是能看到版本号的,但是我的又报错了

Configured with: --prefix=/Applications/Xcode5-DP.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1

xcrun: Error: could not stat active Xcode path '/Applications/Xcode5-DP.app/Contents/Developer'. (No such file or directory)


这时候我看了下我的应用程序里面,没有
Xcode5-DP,只有Xcode,于是把名改成了Xcode5-DP,再试一试,应该就可以了

 
wodeMacBook-Pro:~ wenxiaoye1471$ gcc --version

Configured with: --prefix=/Applications/Xcode5-DP.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1

Apple LLVM version 5.0 (clang-500.2.76) (based on LLVM 3.3svn)

Target: x86_64-apple-darwin12.5.0

Thread model: posix

这下终于确定成功安装gcc了 

2. 第二步下载protocolbuf,地址: http://code.google.com/p/protobuf/ ,我下载的版本是2.5.0的。下载成功后解压文件
3.安装protocolbuf。cd到刚才下载的目录,输入 ./configure,回车
命令行打印出一堆后,输入
make
make check
make install

make install的时候我这又出错了

Making install in .

make[2]: Nothing to be done for `install-exec-am'.

test -z "/usr/local/lib/pkgconfig" || ./install-sh -c -d "/usr/local/lib/pkgconfig"

mkdir: /usr/local/lib/pkgconfig: Permission denied

make[2]: *** [install-pkgconfigDATA] Error 1

make[1]: *** [install-am] Error 2

make: *** [install-recursive] Error 1

这是告诉我权限问题,这时需要加上sudo,输入下面的命令:sudo make install

安装完成后,确认下是否成功:protoc --version
提示:libprotoc 2.5.0
表示安装成功,大事终于告一段落

4.下面就是使用protocolbuf了

(1).proto文件路径要有文件名,而--cpp_out路径不能有文件名,只能是路径

例如,.proto当前目录下,想把C++代码也生成到当前目录下,应该如下调用protoc:

protoc xxxx.proto --cpp_out=.

(2).最好是cd到proto文件所在的目录再导出,否则会出现生成出来的文件找不到头文件的问题


protobuf生成C++代码时会在同一个目录下生成两个文件,一个.cc一个.h,生成的.cpp文件会include生成的.h文件,而如果不cd到proto文件所在目录去操作,那就可能会出现.cc文件包含.h文件时路径错误

例如:.proto文件在src目录下,导出代码也导出到src目录下,可能执行如下命令

protoc src/xxxx.proto --cpp_out=.

不出所料,src目录下确实出现了生成的.cc和.h文件,但是一编译,就会报错了

原因是找不到头文件"src/xxxx.pb.h",原来,protobuf把执行命令时proto文件所在目录的路径也加到生成的代码中了。

所以要想避免这个问题,就cd到protobuf所在的目录再去操作。例如上例的解决办法就是

cd src

protoc xxxx.proto --cpp_out=.

这样一来,再编译,就不会有任何问题了  

参考网址:http://blog.csdn.net/dfqin/article/details/8198341    (
Mac上安装Protocol Buffers
                 http://blog.csdn.net/xocoder/article/details/9173947    (mac上使用
Protocol Buffers  编译成.cc和.h文件
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
来源:https://github.com/google/protobuf/releases protocolbuffer(以下简称PB)是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现,如:java、c#、c++、javascript、go 、python、ruby和php等,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,可以用于诸如网络传输、配置文件、数据存储等诸多领域。 本资源包含: protobuf-all-3.6.0.tar.gz 8.25 MB protobuf-all-3.6.0.zip 4.25 MB protobuf-cpp-3.6.0.tar.gz 5.18 MB protobuf-cpp-3.6.0.zip 4.57 MB protobuf-csharp-3.6.0.tar.gz 5.66 MB protobuf-csharp-3.6.0.zip 4.7 MB protobuf-java-3.6.0.tar.gz 5.86 MB protobuf-java-3.6.0.zip 4.4 MB protobuf-js-3.6.0.tar.gz 5.43 MB protobuf-js-3.6.0.zip 4.59 MB protobuf-objectivec-3.6.0.tar.gz 5.69 MB protobuf-objectivec-3.6.0.zip 4.6 MB protobuf-php-3.6.0.tar.gz 5.64 MB protobuf-php-3.6.0.zip 4.53 MB protobuf-python-3.6.0.tar.gz 5.57 MB protobuf-python-3.6.0.zip 4.52 MB protobuf-ruby-3.6.0.tar.gz 5.5 MB protobuf-ruby-3.6.0.zip 1.46 MB protoc-3.6.0-linux-aarch_64.zip 1.31 MB protoc-3.6.0-linux-x86_32.zip 1.36 MB protoc-3.6.0-linux-x86_64.zip 2.44 MB protoc-3.6.0-osx-x86_32.zip 2.39 MB protoc-3.6.0-osx-x86_64.zip 984 KB protoc-3.6.0-win32.zip Source code (zip) Source code (tar.gz)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值