1-3. xrpldをビルドする
ソースコードが用意できたら、実際にビルドしてみましょう。xrpldはCMakeとConanを使ったビルドシステムを採用しています。
ビルドの全体フロー
Section titled “ビルドの全体フロー”flowchart TD s1["1. Conan で依存ライブラリを取得・ビルド"] s2["2. CMake でビルド設定を生成"] s3["3. cmake --build でコンパイル・リンク"] s4["4. 実行ファイル: .build/xrpld"] s1 --> s2 --> s3 --> s4
ステップ 1: ビルドディレクトリを作成
Section titled “ステップ 1: ビルドディレクトリを作成”xrpld-test のルートディレクトリで実行します:
# xrpld-test/ で実行mkdir .buildcd .build# 以降はすべて xrpld-test/.build/ 内で実行ステップ 2: 依存ライブラリの取得
Section titled “ステップ 2: 依存ライブラリの取得”.. はルートの conanfile.py を指します(.build/ の一つ上)。
# xrpld-test/.build/ で実行conan install .. --output-folder . --build missing \ --settings build_type=Release
conan install .. --output-folder . --build missing \ --settings build_type=Debug完了すると .build/build/generators/conan_toolchain.cmake が生成されます。
ステップ 3: CMakeの設定
Section titled “ステップ 3: CMakeの設定”.. はルートの CMakeLists.txt を指します(.build/ の一つ上)。
# xrpld-test/.build/ で実行cmake -DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake \ -DCMAKE_BUILD_TYPE=Debug \ -Dxrpld=ON \ -Dtests=ON \ ..| オプション | 説明 |
|---|---|
-DCMAKE_TOOLCHAIN_FILE | ステップ2で生成されたツールチェーンファイル |
-DCMAKE_BUILD_TYPE | Debug または Release |
-Dxrpld=ON | xrpldデーモンをビルドする |
-Dtests=ON | テストをビルドする |
成功すると以下のような出力が出ます:
-- The CXX compiler identification is Clang 16.0.0...-- Build files have been written to: /path/to/xrpld-test/.buildステップ 4: ビルド実行
Section titled “ステップ 4: ビルド実行”. は現在いる .build/ ディレクトリを指します。
# xrpld-test/.build/ で実行cmake --build . --parallelビルド完了まで20〜60分程度かかります。以下のような出力で完了です:
[100%] Linking CXX executable xrpldビルド成功の確認
Section titled “ビルド成功の確認”実行ファイルは .build/ 内に生成されます。
# xrpld-test/.build/ で実行./xrpld --version以下のような出力が出ればビルド成功です:
xrpld version 3.2.0-rc2+...Git commit hash: 47365f42203c53b723b3d209d8bcd760bf0c4822Git build branch: developユニットテストの実行
Section titled “ユニットテストの実行”./xrpld --unittest --unittest-jobs 4数分後に Passed X test cases と表示されれば正常です。
よくあるエラーと解決策
Section titled “よくあるエラーと解決策”compiler.cppstd エラー
Section titled “compiler.cppstd エラー”ERROR: Package 'boost/...' can't be built with the current configuration解決策: Conanプロファイルの compiler.cppstd を 20 に設定してください(1-2. 環境構築参照)。
メモリ不足でビルドが中断される
Section titled “メモリ不足でビルドが中断される”c++: fatal error: Killed signal terminated program cc1plus解決策: 並列数を制限してください。
cmake --build . --parallel 2CMakeのバージョンエラー
Section titled “CMakeのバージョンエラー”CMake 3.22 or higher is required.解決策: CMakeを更新してください。
# macOSbrew upgrade cmake
# Ubuntupip3 install cmake --upgradeError: could not load cache
Section titled “Error: could not load cache”Error: could not load cache原因: ステップ 3 の cmake ... ..(設定フェーズ)を実行していない状態で cmake --build を実行するとこのエラーが出ます。
解決策: ステップ 3 の cmake 設定を先に実行してください。
# xrpld-test/.build/ で実行cmake -DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake \ -DCMAKE_BUILD_TYPE=Debug \ -Dxrpld=ON \ -Dtests=ON \ ..設定が完了すると .build/CMakeCache.txt が生成されます。その後に cmake --build . --parallel を実行してください。
build/generators/conan_toolchain.cmake が見つからない
Section titled “build/generators/conan_toolchain.cmake が見つからない”解決策: ステップ 2 の conan install が正常に完了しているか確認します。
ls build/generators/# conan_toolchain.cmake が存在するはず次のステップ
Section titled “次のステップ”xrpldのビルドが成功しました。次はローカルネットワークを起動して動作を確認します。