安装Bazel并编译运行

- 1 min read

关于远程服务器

本文使用的操作系统是ubuntu 22.04。

如果需要运行trpc-cpp,服务器的内存要>2gb,否则后期编译运行时可能会有问题。

另外,直接登入root操作可能会遇到奇怪的问题。

github加速

参考这个github加速 - 妖岭 - 博客园 (cnblogs.com),后续下载会快一点。

bazel安装配置

Bazel官网中可以找到推荐的安装方式是使用Bazelisk,一个有版本管理功能的Bazel启动器。 Pasted image 20241016225027.png

可以直接下载deb文件并安装

wget https://github.com/bazelbuild/bazelisk/releases/download/v1.22.0/bazelisk-amd64.deb

dpkg -i bazelisk-amd64.deb

理论上,只要输入bazel,bazelisk就会初次启动,自动下载Bazel某个版本。那么只要输入bazel --version后能看到版本信息,就能确定Bazel安装成功。

实际上,可能会在卡顿许久后出现以下提示信息: image.png

Bazel版本设置

bazelisk的github仓库里有写到它在初次启动时如何确定下载哪个Bazel版本。 image.png 可以看到,如果没有预先设置要使用的版本,它就会自动搜索使用最新的版本信息。但它搜索的这个链接在不翻墙的情况下无法访问,因此会出现如上所示的报错。

解决方法就是,预先设置要使用的version来避开这一步,可以利用.bazeliskrc文件。 image.png 用这个指令即可指定version:echo "USE_BAZEL_VERSION=6.1.0" > .bazeliskrc6.1.0应被实际选择版本号替代。 至于版本的选择,如果需要编译trpc-cpp,事实上需要Bazel版本是>=3.5.1,<7的。(参考这个这个)

可以在上面的googleapi链接或华为云 bazel找到所有版本号。

其他参考链接

Bazel 教程:构建 C++ 项目

另一种安装Bazelisk方式

Steps for installing Bazelisk are not new-developer friendly

编译运行trpc-cpp

只要按照trpc-cpp/docs/zh/setup_env.md上的说明操作即可,具体如下:

# 进入根目录trpc-cpp
cd trpc-cpp

# 用bazel编译并运行框架提供的example示例
./run_examples.sh

另外,如果先编译helloworld demo来测试会快一点。 ./examples/helloworld/run.sh