LoginSignup
0
0

More than 1 year has passed since last update.

「Building Arrow C++」してみる

Last updated at Posted at 2023-01-27

概要

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.
0
0
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
0
0