Contact

【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

この状態で実行するとちゃんとソースファイルを見つけてデバッグが可能になる↓

快適デバッグ環境が手に入った。

ブログ元記事へのリンク

ブログの元記事はこちらから

https://techmedia-think.hatenablog.com/entry/2025/04/15/193203

Chaintopeでブロックチェーンの未来を共に創りませんか?

Chaintopeは、独自のブロックチェーン「Tapyrus」と、開発プラットフォーム「Tapyrus Platform」を活用し、デジタル社会の信頼基盤を構築しています。
私たちは、ブロックチェーン技術の可能性を最大限に引き出し、社会に新しい価値を提供することを目指しています。

募集職種:

ブロックチェーンエンジニア
アプリケーションエンジニア
インフラ・保守エンジニア
プロジェクトマネージャー
フィールドセールス

Chaintopeで働く魅力:

最先端のブロックチェーン技術に触れる機会
リモートワークやフレックスタイム制による柔軟な働き方
専門性の高いチームとの協働
ブロックチェーン技術に情熱を持つあなたのスキルを、私たちのチームで活かしませんか?
詳細は、採用情報をご覧ください。

https://www.chaintope.com/recruit/

 

話題のキーワード