メインコンテンツまでスキップ

Build Handbook

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の単体テストを実行する方法

現在、BEの単体テストを実行するためにはいくつかの依存関係が必要です。./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でビルドする

StarRocksはclangでもビルドすることができます。

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

その後、ビルドメッセージに次のようなメッセージが表示されます。

-- compiler Clang version 14.0.0

異なるリンカーでビルドする

デフォルトのリンカーは遅いため、開発者は異なるリンカーを指定してリンクの速度を向上させることができます。例えば、LLVMベースのリンカーであるlldを使用することができます。

まず、lldをインストールする必要があります。

sudo apt install lld

次に、環境変数STARROCKS_LINKERに使用するリンカーを設定します。 例えば:

STARROCKS_LINKER=lld ./build.sh --be

異なるタイプでビルドする

ビルドするStarRocksのタイプを異なるBUILD_TYPE変数で指定することができます。デフォルトのBUILD_TYPEはRELEASEです。例えば、ASANタイプでStarRocksをビルドするには、次のコマンドを実行します。

BUILD_TYPE=ASAN ./build.sh --be