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