跳到主要内容
版本: 最新版本-3.5

如何编译 StarRocks

通常,您可以通过执行以下命令来构建 StarRocks

./build.sh

此命令将首先检查所有第三方依赖项是否已准备就绪。如果所有依赖项都已准备就绪,它将构建 StarRocks BackendFrontend

此命令成功执行后,生成的二进制文件将在 output 目录中。

分别构建 FE/BE

您不需要每次都构建 FE 和 BE,您可以分别构建它们。 例如,您只能通过以下方式构建 BE

./build.sh --be

并且,仅通过以下方式构建 FE

./build.sh --fe

如何运行单元测试

BE 和 FE 的单元测试是分开的。 通常,您可以通过以下方式运行 BE 测试

./run-be-ut.sh

通过以下方式运行 FE 测试

./run-fe-ut.sh

如何在命令行中运行 BE UT

现在,BE UT 需要一些依赖项才能运行,而 ./run-be-ut.sh 可以帮助它。 但它不够灵活。 当您想在命令行中运行 UT 时,您可以执行

UDF_RUNTIME_DIR=./ STARROCKS_HOME=./ LD_LIBRARY_PATH=/usr/lib/jvm/java-18-openjdk-amd64/lib/server ./be/ut_build_ASAN/test/starrocks_test

StarRocks Backend UT 构建在 google-test 之上,因此您可以传递过滤器来运行某些 UT。 例如,您只想测试 MapColumn 相关的测试,您可以执行

UDF_RUNTIME_DIR=./ STARROCKS_HOME=./ LD_LIBRARY_PATH=/usr/lib/jvm/java-18-openjdk-amd64/lib/server ./be/ut_build_ASAN/test/starrocks_test --gtest_filter="*MapColumn*"

构建选项

使用 clang 构建

您也可以使用 clang 构建 StarRocks

CC=clang CXX=clang++ ./build.sh --be

然后您可以在构建消息中看到以下类似消息

-- compiler Clang version 14.0.0

使用不同的链接器构建

默认链接器速度较慢,开发人员可以指定不同的链接器来加速链接。 例如,您可以使用 lld,即基于 LLVM 的链接器。

您需要首先安装 lld

sudo apt install lld

然后您可以使用要使用的链接器设置环境变量 STARROCKS_LINKER。 例如

STARROCKS_LINKER=lld ./build.sh --be

构建不同的类型

您可以使用不同的 BUILD_TYPE 变量以不同的类型构建 StarRocks,默认的 BUILD_TYPE 是 RELEASE。 例如,您可以通过以下方式使用 ASAN 类型构建 StarRocks

BUILD_TYPE=ASAN ./build.sh --be