网站首页 > 博客文章 正文
特别需要强调,grpc需要6.3以上的gcc/g++版本,如果低于此版本的需要参考文档进行升级。
- cmake 、gcc的版本, ubuntu16.04默认的版本不支持。
1 安装必要的依赖工具
安装必要的依赖工具
sudo apt-get install autoconf automake libtool
如果cmake低于3.15, gcc/g++ 低于 7.0 ,请根据文档进行安装。查看版本的方式
br# 检查cmake版本brcmake -versionbr# 检查gcc/g++版本brgcc -vbrg++ -v
1.1 安装 cmake
可以下载更新的版本:
最低版本为3.15。
1. 卸载已经安装的旧版的CMake
brsudo apt-get autoremove cmake
2. 文件下载解压
brwget https://cmake.org/files/v3.23/cmake-3.23.0-linux-x86_64.tar.gz
解压:
brtar zxf cmake-3.23.0-linux-x86_64.tar.gz
查看解压后的目录:
tree -L 2 cmake-3.23.0-linux-x86_64br
brcmake-3.23.0-linux-x86_64br├── binbr│ ├── ccmakebr│ ├── cmakebr│ ├── cmake-guibr│ ├── cpackbr│ └── ctestbr├── docbr│ └── cmakebr├── manbr│ ├── man1br│ └── man7br└── sharebr ├── aclocalbr ├── applicationsbr ├── bash-completionbr ├── cmake-3.23br ├── emacsbr ├── iconsbr ├── mimebr └── vim
bin下面有各种cmake家族的产品程序.
3. 创建软链接
注: 文件路径是可以指定的, 一般选择在/opt 或 /usr 路径下, 这里选择/opt
brsudo mv cmake-3.23.0-linux-x86_64 /opt/cmake-3.23.0brsudo ln -sf /opt/cmake-3.23.0/bin/* /usr/bin/
4. 测试版本
brubuntu@VM-16-11-ubuntu:~/rpc$ cmake -versionbrcmake version 3.23.0br
brCMake suite maintained and supported by Kitware (kitware.com/cmake).
1.2 安装gcc/gdb
升级gcc和gdb的版本,至少需要6.3以上的版本。
Operating System | Architectures | Versions | Support Level |
Linux - Debian, Ubuntu, CentOS | x86, x64 | clang 6+, GCC 6.3+ | Officially Supported |
Windows 10+ | x86, x64 | Visual Studio 2017+ | Officially Supported |
MacOS | x86, x64 | XCode 12+ | Officially Supported |
Linux - Others | x86, x64 | clang 6+, GCC 6.3+ | Best Effort |
注意:如果已经是高于7.0 不需要再次安装。
目标: 安装 gcc g++ 7的安装包
- 安装
brsudo apt-get install -y software-properties-commonbrsudo add-apt-repository ppa:ubuntu-toolchain-r/testbrsudo apt updatebrsudo apt install g++-7 -y
- 建立软连接并检查
brsudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 60 \br --slave /usr/bin/g++ g++ /usr/bin/g++-7 brsudo update-alternatives --config gccbrgcc -vbrg++ -v
显示7.5的版本。
2 编译grpc
推荐使用cmake的方式进行编译。 grpc安装过程比较依赖网络的通畅性(容易被墙),我是租用了腾讯云香港服务器下载的grpc源代码,他不仅是grpc源码本身,还依赖了很多第三方库,比如protobufer。大家可以直接使用我提供的源码包(900+MB,记得先解压)进行编译。
如果不能翻墙,直接采用我提供的压缩包 grpc-v1.45.2.tar.bz2,则解压
br解压方式: brtar -jxf grpc-v1.45.2.tar.bz2
解压完直接跳到步骤 4.编译和安装。如果能翻墙则可以从 步骤1. 下载源码开始。
- 下载源码
brgit clone https://github.com/grpc/grpc
- 查看版本并选择合适的版本,这里选择v1.45.2相对较新的版本
brgit tagbrgit checkout v1.45.2
查看此时grpc目录内容的大小du -h --max-depth=1, 可以看到427M左右
brubuntu@VM-16-11-ubuntu:~/rpc/grpc$ du -h --max-depth=1br348M ./.gitbr32K ./summerofcodebr1.5M ./docbr6.5M ./toolsbr4.0K ./spm-core-includebr24M ./testbr80K ./cmakebr3.0M ./third_partybr4.0K ./spm-cpp-includebr1.5M ./templatesbr8.0K ./.bazelcibr1.9M ./includebr5.0M ./examplesbr34M ./srcbr268K ./etcbr64K ./.githubbr284K ./bazelbr427M .br
- 下载第三方依赖库,下载完后会发现整个grpc目录内容明显变大
brgit submodule update --init
再次查看 目录大小,占用了1.3G。
brubuntu@VM-16-11-ubuntu:~/rpc/grpc$ du -h --max-depth=1br899M ./.gitbr32K ./summerofcodebr1.5M ./docbr6.5M ./toolsbr4.0K ./spm-core-includebr24M ./testbr80K ./cmakebr291M ./third_partybr4.0K ./spm-cpp-includebr1.5M ./templatesbr8.0K ./.bazelcibr1.9M ./includebr5.0M ./examplesbr34M ./srcbr268K ./etcbr64K ./.githubbr284K ./bazelbr1.3G
- 编译和安装
brmkdir -p cmake/buildbrcd cmake/buildbrcmake ../..brmakebrsudo make install
3 protobuf安装
不用手动安装protobuf,不然版本可能和grcp不匹配,必须在 grpc 执行 git submodule update --init 命令之后生成的 third_party/protobuf 里面编译安装对应的 protobuf。
brcd third_party/protobuf/br./autogen.sh br./configure --prefix=/usr/localbrmakebr
brsudo make installbrsudo ldconfig # 使得新安装的动态库能被加载br
brprotoc --versionbr显示3.19.4
4 测试环境
编译helloworld
brcd grpc/examples/cpp/helloworld/brmkdir buildbrcd build/brcmake ..brmake登录后复制
启动服务器和客户端
br# 启动服务端,监听在50051端口br./greeter_serverbrServer listening on 0.0.0.0:50051br# 启动客户端,服务端返回Hello worldbr./greeter_client brGreeter received: Hello world
5 参考
ubuntu搭建grpc for C++开发环境wx5bb365de633ed的技术博客51CTO博客 该文档提供修改grpc第三方库下载地址的方式进行安装。
6 辅助-使用scp命令,远程上传下载文件/文件夹
这里只是提供一种方式供大家可以在服务器之间传递文件,不是该节课程的内容,仅供参考。
- 从服务器下载文件
brscp username@servername:/path/filename /local/path
例如: scp ubuntu@192.168.1.222:/ubuntu/data/data.txt /desktop/ubuntu 把192.168.1.222上的/ubuntu/data/data.txt 的文件下载到/desktop/ubuntu目录中
- 上传本地文件到服务器
brscp /local/path/local_filename username@servername:/path
例如: scp /ubuntu/learning/deeplearning.doc ubuntu@192.168.1.222:/ubuntu/learning 把本机/ubuntu/learning/目录下的deeplearning.doc文件上传到192.168.1.222这台服务器上的/ubuntu/learning目录中
- 从服务器下载整个目录
brscp -r username@servername:/path /path
例如: scp -r ubuntu@192.168.1.222:/home/ubuntu/data /local/local_dir “-r”命令是文件夹目录,把当前/home/ubuntu/data目录下所有文件下载到本地/local/local_dir目录中
- 上传目录到服务器
brscp -r /path username@servername:/path
例如: scp -r /ubuntu/test ubuntu@192.168.1.222:/ubuntu/tx “-r”命令是文件夹目录,把当前/ubuntu/test目录下所有文件上传到服务器的/ubuntu/tx/目录中
猜你喜欢
- 2024-10-03 Qt4/5升级到Qt6吐血经验总结V202308
- 2024-10-03 微软兑现承诺:更新Linux子系统,编译WSL 2内核只需3步
- 2024-10-03 centos7使用源码从python2升级到python3,干货值得收藏
- 2024-10-03 Clion2021大版本更新亮点一览(clion2020.1)
- 2024-10-03 CPack 入门指南(cpaks)
- 2024-10-03 C/C++ 开发工具 CLion 新版发布,10 大新功能抢先看
- 2024-10-03 centos7升级glibc(centos7升级gcc)
- 2024-10-03 ReactOS年度报告:改进shell,增强应用管理
- 2024-10-03 CMake构建Makefile深度解析:从底层原理到复杂项目
- 2024-10-03 CBrother升级至V2.5.5,支持编译和打包
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- messagesource (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)