【CTO Tech Blog】Bitcoin Core v29.0がCMakeをサポート
- CTO Tech blog

先日リリースされたBitcoin Core v29.0でビルドシステムが刷新された↓
https://bitcoincore.org/ja/releases/29.0/
これまで長らくAutotoolsを使ってビルドしていたけど↓
techmedia-think.hatenablog.com
ビルドシステムがCMakeに移行された。
CMakeを使ったビルド
当然ながらCMakeが必要になるので、入っていない場合は、インストールする↓
$ sudo apt install cmake
あとはBitcoin Coreをcloneしたディレクトリで、CMakeでビルドするだけ↓
$ cmake -B build $ cmake --build build -j 17
-j
は並列処理のオプションで、物理コア+1を指定してる。
これまでは、src
直下にbitcoind
などの実行ファイルが生成されてたけど、↑の最初の-B
で指定したビルドディレクトリ内のbin
ディレクトリに各実行ファイルは生成され、ライブラリはlib
ディレクトリに格納される。
また、これまでconfigure
で指定していたオプションは、今後はCMake変数として設定することになる。各オプションの変数については↓のマッピングファイルで確認できる。
Autotools to CMake Options Mapping · bitcoin-core/bitcoin-devwiki Wiki · GitHub
CMakeになって何が嬉しいかというと、開発に使用する各IDEのCMakeサポートが利用可能になり、CMakeプロジェクトとしてロードするだけでビルドなどの設定が自動的にIDEに反映されること。
src/test
以下にあるBoost.Testを使った単体テストも、IDE(CLion)のエディタ上で簡単に実行できる↓
デバッガの利用
↑でDebug
選択したら簡単にデバッグできるかなと思ったけど、ブレークポイントを貼っても止まらない。DebugウィンドウのGDBのタブを確認すると
No source file named /home/azuchi/bitcoin/src/test/bech32_tests.cpp.
というログが。どうもGDBがソースファイルを見つけられてないのが原因っぽい。とりあえず、ホームディレクトリ直下に以下の.gdbinit
ファイルを生成して、GDBのソースファイル検索パスにBitcoinのソースディレクトリを追加してみた。
$ echo "directory /home/azuchi/bitcoin/src" >> ~/.gdbinit
この状態で実行するとちゃんとソースファイルを見つけてデバッグが可能になる↓
快適デバッグ環境が手に入った。
ブログ元記事へのリンク
Chaintopeでブロックチェーンの未来を共に創りませんか?
Chaintopeは、独自のブロックチェーン「Tapyrus」と、開発プラットフォーム「Tapyrus Platform」を活用し、デジタル社会の信頼基盤を構築しています。
私たちは、ブロックチェーン技術の可能性を最大限に引き出し、社会に新しい価値を提供することを目指しています。
募集職種:
ブロックチェーンエンジニア
アプリケーションエンジニア
インフラ・保守エンジニア
プロジェクトマネージャー
フィールドセールス
Chaintopeで働く魅力:
最先端のブロックチェーン技術に触れる機会
リモートワークやフレックスタイム制による柔軟な働き方
専門性の高いチームとの協働
ブロックチェーン技術に情熱を持つあなたのスキルを、私たちのチームで活かしませんか?
詳細は、採用情報をご覧ください。
https://www.chaintope.com/recruit/