メインコンテンツまでスキップ
バージョン: 3.2

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

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

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

まず 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