protobuf源码安装遇到被墙后,如何继续编译成功
protobuf正常的安装步骤为:
tar -xvf protobuf
cd protobuf
./autogen.sh
./configure --prefix=/usr/local/protobuf
make
make check
make install
如果在./autogen.sh时出错
Unknown SSL protocol error in connection to xxx:443,说明执行autogen.sh脚本时被墙了,仔细查看auotogen.sh脚本,发现了下面两个下载(感觉是protobuf留的坑)
1 if test ! -e gmock; then 2 echo "Google Mock not present. Fetching gmock-1.7.0 from the web..." 3 curl $curlopts -L -O https://github.com/google/googlemock/archive/release-1.7.0.zip 4 unzip -q release-1.7.0.zip 5 rm release-1.7.0.zip 6 mv googlemock-release-1.7.0 gmock 7 8 curl $curlopts -L -O https://github.com/google/googletest/archive/release-1.7.0.zip 9 unzip -q release-1.7.0.zip 10 rm release-1.7.0.zip 11 mv googletest-release-1.7.0 gmock/gtest 12 fi
可以看到这个脚本里面从github里面下载了两个文件,手动自己下载这两个文件,放到一个放到protobuf/gmock目录下,一个放到protobuf/gmock/gtest下,记得解压。
然后在./autogen.sh就可以看到configure文件了,此时可以按照上面正常流程编译安装protobuf了。