如何编译 StarRocks
通常,您可以通过执行以下命令来构建 StarRocks
./build.sh
此命令将首先检查所有第三方依赖项是否已准备就绪。如果所有依赖项都已准备就绪,它将构建 StarRocks Backend
和 Frontend
。
此命令成功执行后,生成的二进制文件将在 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