概要
「Building Arrow C++ 」に従い、とりあえずビルドしてみたメモです。
(CMakeやNinjaを利用しているようですが、これを書いている時点で、これらについてよくわかってないです!)
環境
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=22.04
DISTRIB_CODENAME=jammy
DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS"
OSをインストールしただけで何もしてない状態です
実行したコマンド
ドキュメントに書いてあるコマンドを実行しただけですが、書いていきます。
$ sudo apt-get install \
build-essential \
cmake
ドキュメントにはないですが ninja-build
も必要なのでインストールします。
(最新のドキュメントだと ninja-build
もインストールするように修正されています: 2023/02/09 追記)
$ sudo apt-get install ninja-build
あとはドキュメントの通り実行していきます。
$ git clone https://github.com/apache/arrow.git
$ cd arrow/cpp
ドキュメントにある --preset ninja-debug-minimal
でビルドしてみます。
$ mkdir build
$ cd build
$ cmake .. --preset ninja-debug-minimal
(出力省略)
(さっき `mkdir` して `cd` した `build` ディレクトリ内で)
$ cmake --build .
(出力省略)
ドキュメントにある tree
コマンドで確認する場合はインストールしてから確認します。
$ sudo apt-get install tree
$ tree debug/
debug/
├── libarrow.so -> libarrow.so.1100
├── libarrow.so.1100 -> libarrow.so.1100.0.0
└── libarrow.so.1100.0.0
0 directories, 3 files
とりあえずビルドてきたっぽい?
ドキュメントの「Manual configuration」以降は、後で読む!
Running unit tests
↑にあるテストの実行ができるか試してみます。
cloneした直後に cd
した arrow/cpp
にて。
$ mkdir build_tests
$ cd build_tests
$ cmake .. --preset ninja-debug-minimal -DARROW_BUILD_TESTS=ON
$ cmake --build .
$ ctest -j16 --output-on-failure
(出力省略。もりもりテストが実行されてるっぽかった)
まとめ
よくわかってないまま、とりあえずビルドできたっぽいところまでのメモでした。
補足1
ninja-build
がないとエラーになります。
$ cmake .. --preset ninja-debug-minimal
Preset CMake variables:
ARROW_BUILD_INTEGRATION="OFF"
ARROW_BUILD_STATIC="OFF"
ARROW_BUILD_TESTS="OFF"
ARROW_EXTRA_ERROR_CONTEXT="ON"
ARROW_WITH_RE2="OFF"
ARROW_WITH_UTF8PROC="OFF"
CMAKE_BUILD_TYPE="Debug"
-- Building using CMake version: 3.22.1
CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!
See also "/home/xxx/arrow/cpp/build/CMakeFiles/CMakeOutput.log".
補足2
tree
コマンドがないとエラーが出ます。
$ tree debug/
Command 'tree' not found, but can be installed with:
snap install tree # version 1.8.0+pkg-3fd6, or
apt install tree # version 2.0.2-1
See 'snap info tree' for additional versions.