注:参考 http://www.cnblogs.com/yuhan-TB/p/4629362.html
我自己的brew安装踩坑了~ 所以就采取了跟Ubuntu下相似的安装方式,这里做一下笔记。
1. git 上 https://github.com/google/protobuf下载tag v 2.6.0的代码。解压缩。
2. cd protobuf-2.6.0
3.网上说 ./configure 但是报没有这个命令。但是里面有autogen.sh的脚本。运行sudo ./autogen.sh, 发现出错了。按参考的博客
sudo brew automake
sudo brew libtool
sudo brew autoconf
错误,错误信息表示没有automake,libtool.于是自己就手动安装了。
这里参考了这篇博客(http://blog.sina.com.cn/s/blog_586c261a0101jil1.html)
curl -O http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz
tar -xzvf m4-1.4.13.tar.gz
cd m4-1.4.13
./configure –prefix=/usr/local
make
sudo make install
cd ..
curl -O http://mirrors.kernel.org/gnu/autoconf/autoconf-2.65.tar.gz
tar -xzvf autoconf-2.65.tar.gz
cd autoconf-2.65
./configure --prefix=/usr/local
make
sudo make install
cd ..
curl -O http://mirrors.kernel.org/gnu/automake/automake-1.11.tar.gz
tar xzvf automake-1.11.tar.gz
cd automake-1.11
./configure --prefix=/usr/local
make
sudo make install
cd ..
curl -O http://mirrors.kernel.org/gnu/libtool/libtool-2.2.6b.tar.gz
tar xzvf libtool-2.2.6b.tar.gz
cd libtool-2.2.6b
./configure --prefix=/usr/local
make
sudo make install
4.这些文件安装完成之后,在
./configure
make
make check (检查是否通过)
我在make check的时候报错了。错误如下:
Making lib/libgtest.a lib/libgtest_main.a in gtest
depbase=`echo src/gtest-all.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/sh ./libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I./build-aux -I. -I./include -D_THREAD_SAFE -DGTEST_HAS_PTHREAD=1 -g -DNDEBUG -MT src/gtest-all.lo -MD -MP -MF $depbase.Tpo -c -o src/gtest-all.lo src/gtest-all.cc &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I./build-aux -I. -I./include -D_THREAD_SAFE -DGTEST_HAS_PTHREAD=1 -g -DNDEBUG -MT src/gtest-all.lo -MD -MP -MF src/.deps/gtest-all.Tpo -c src/gtest-all.cc -fno-common -DPIC -o src/.libs/gtest-all.o
In file included from src/gtest-all.cc:39:
In file included from ./include/gtest/gtest.h:57:
In file included from ./include/gtest/internal/gtest-internal.h:40:
./include/gtest/internal/gtest-port.h:449:10: fatal error: 'tr1/tuple' file not found
#include <tr1/tuple> // NOLINT
^
1 error generated.
make[3]: *** [src/gtest-all.lo] Error 1
make[2]: *** [check-local] Error 2
make[1]: *** [check-am] Error 2
make: *** [check-recursive] Error 1
解决方案:
./configure CPPFLAGS=-DGTEST_USE_OWN_TR1_TUPLE=1
5. 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
是因为没有安装这个包pkgconfig文件,但是自己下载安装,却又报错误,错误信息如下。但是这个解压命令解压其他的压缩文件是可以的。唯独这个文件不可以(暂时没搞明白为什么)。
➜ ~ curl http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz -o pkg-config-0.28.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 365 100 365 0 0 349 0 0:00:01 0:00:01 --:--:-- 349
➜ ~
➜ ~ tar -xf pkg-config-0.28.tar.gz
tar: Unrecognized archive format
tar: Error exit delayed from previous errors.
6 .最后不顾错误提醒。看到了Permission denied。因此 sudo make install 安装OK。
protoc --version 查看是否安装成功。
➜ ~ protoc --versionlibprotoc 2.6.0
先记录一下手动安装成功的。有空再按brew在安装一次。把遇到的坑填了~~