やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

SQLite3学習 拡張ライブラリ数学関数(extension-functions.c)

 拡張ライブラリをビルドして動的ロードする。

成果物

ダウンロード&ビルド

 SQLite3本体と拡張ライブラリをダウンロード&ビルドする。

wget https://www.sqlite.org/2019/sqlite-autoconf-3290000.tar.gz
tar xf sqlite-autoconf-3290000.tar.gz
wget https://www.sqlite.org/contrib/download/extension-functions.c?get=25
mv ./extension-functions.c?get=25 ./extension-functions.c
gcc -shared -I "./sqlite-autoconf-3290000" -o libsqlitefunctions.so extension-functions.c

 libsqlitefunctions.soファイルが出力される。これが拡張ファイル。あとはこれを動的ロードすることで数学関数が使える。

使ってみる

sqlite3
.load ./libsqlitefunctions.so
select sin(1);
0.841470984807897

 使えた。

 もしロードできなければ以下エラーになる。

Error: no such function: sin

情報源

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux

前回まで