2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linux の VSCode 上で Symbol サーバーをビルドする

Last updated at Posted at 2024-09-29

環境

Ubuntu 22.04 LTS

必要なパッケージをインストール

ビルドに必要なコンパイラ等をインストールします。

sudo apt -y install git gcc g++ curl libssl-dev libgtest-dev ninja-build pkg-config python3-pip
pip install pyyaml

CMake インストール

Ubuntu 22.04 の CMake のバージョンが古いので、新しいバージョンをインストールします。

署名鍵のコピー

wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null

リポジトリの追加

echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null

パッケージ更新&インストール

sudo apt update
sudo apt install cmake

ソースをクローン

現在メインネットで動いているバージョンを取得します。
ホームディレクトリにクローンしました。

git clone https://github.com/symbol/symbol.git -b client/catapult/v1.0.3.7

依存パッケージのビルド

Symbol サーバーをビルドするのに必要な依存パッケージをビルドするため、symbol/client/catapultに入ります。

cd symbol/client/catapult

下記コマンドでビルドします。
ビルド中にエラー出たら解消して、再実行してください。再実行時は--downloadオプション不要です。

PYTHONPATH="../../jenkins/catapult/" \
 python3 "../../jenkins/catapult/installDepsLocal.py" \
 --target "./deps" \
 --versions "../../jenkins/catapult/versions.properties" \
 --build \
 --download

VSCode でビルド

拡張機能

下記の拡張機能を追加します。(たぶん、これ 1 つだけで良いはず…)

  • C/C++ Extension Pack

VSCode 起動

VSCode を起動し、symbol/client/catapultを開きます。
.vscodeディレクトリを作成し、下記のsettings.jsontasks.jsonを作成します。settings.jsonでパスを通しているので、各自環境に合わせて変更してください。

.vscode/settings.json
{
  "cmake.environment": {
    "BOOST_ROOT": "~/symbol/client/catapult/deps/boost",
  },
  "cmake.configureArgs": [
    "-DENABLE_TESTS=OFF",
    "-DCMAKE_PREFIX_PATH='~/symbol/client/catapult/deps/facebook;~/symbol/client/catapult/deps/google;~/symbol/client/catapult/deps/mongodb;~/symbol/client/catapult/deps/zeromq;~/symbol/client/catapult/deps/openssl;'",
    "-GNinja"
  ],
  "cmake.deleteBuildDirOnCleanConfigure": false,
  "cmake.skipConfigureIfCachePresent": true,
}
.vscode/tasks.json
{
 "version": "2.0.0",
 "tasks": [
  {
   "hide": true,
   "type": "cmake",
   "label": "CMake: 構成",
   "command": "configure",
   "problemMatcher": [],
   "detail": "CMake テンプレート 構成 タスク"
  },
  {
   "type": "shell",
   "label": "Symbol 構成",
   "command": "ninja publish",
   "options": {
    "cwd": "${workspaceFolder}/build"
   },
   "dependsOn": [
    "CMake: 構成"
   ],
   "problemMatcher": [],
   "detail": "ビルド前の `ninja publish` コマンド"
  }
 ]
}

構成

メニュー 「ターミナル->タスクの実行」 から 「Symbol 構成」を選択します。
依存パッケージのバージョンチェック等が走ります。上手くパスが通せてなかったりするとエラーが出ますので、頑張って解消してください。エラーが出てやり直す場合は、キャッシュが残ってるので build ディレクトリ内を全て削除すること。

ビルド

VSCode のウィンドウ左下辺りに「ビルド」ボタンがあるので、それを押す。または、「ターミナル->ビルド タスクの実行...」から「CMake:ビルド」を選択でも可。
これまた時間が掛かります。

動作確認

ライブラリ移動

ライブラリがbinディレクトリ内にあるので、libディレクトリにコピーします。

cd build
cp bin/*.so lib

パスを通す

vi ~/.bashrc

以下を末行に追加。

~/.bashrc
export LD_LIBRARY_PATH=~/symbol/client/catapult/deps/facebook/lib:~/symbol/client/catapult/deps/boost/lib:~/symbol/client/catapult/build/lib

.bashrcを再読込。

source ~/.bashrc

実行

下記コマンドを実行してヘルプが表示されれば、ビルド成功です。

./bin/catapult.tools.address --help
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?