Armadilloフォーラム

共有ライブラリの設定方法

shiroro

2025年8月6日 17時31分

以前質問した
https://armadillo.atmark-techno.com/forum/armadillo/26152
からの派生になるのですが、
VScodeで「デバッグモードのアプリをATDEで実行」した際には出てこなかったエラーが、「デバッグモードのアプリをArmadilloで実行」すると出てくるようになりました。
エラー内容は下記のとおりです。

SqfliteFfiException(error, Invalid argument(s): Failed to load dynamic library 'libsqlite3.so': libsqlite3.so: cannot open shared object file: No such file or directory}) DatabaseException(Invalid argument(s): Failed to load dynamic library 'libsqlite3.so': libsqlite3.so: cannot open shared object file: No such file or directory)

libsqlite3.soファイルがコンテナ内にあるかどうかを検索をかけたところ、/usr/lib/aarch64-linux-gnu/libsqlite3.so.0.8.6のパスが返ってきました。

そのため、https://manual.atmark-techno.com/armadillo-610/armadillo-6x0_abos_migra… を参考にして、TeraTermでコンテナ内に入って、$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH/usr/lib/aarch64-linux-gnuを実行し、コンテナを保存して、改めてVScodeからデバッグモードのアプリをArmadilloで実行しましたが、同じSqfliteFfiExceptionが出てきます。
デバッグを実行するとコンテナIDが変わるので、設定を保存した時のコンテナIDとデバッグ時のコンテナIDは別のものでした。

コンテナにおける共有ライブラリの設定はどのようにしたらよいでしょうか。
ご教示いただければ幸いです。

コメント

佐藤です。

> libsqlite3.soファイルがコンテナ内にあるかどうかを検索をかけたところ、/usr/lib/aarch64-linux-gnu/libsqlite3.so.0.8.6のパスが返ってきました。
>
libsqlite3.so は libsqlite3-dev パッケージに含まれています。
コンテナ内に libsqlite3-dev をインストールしてみるとどうでしょうか。

佐藤様

ご回答ありがとうございます。
コンテナ内にlibsqlite3-devをインストールした後、改めて「デバッグモードのアプリをArmadilloで実行」を行いましたが、同じSqfliteFfiExceptionが表示されました。
一応コンテナ内で$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH/usr/lib/aarch64-linux-gnuも実行しています。
インストール後に何か設定が必要でしょうか?

ご確認のほど、よろしくお願いたします。

佐藤です。

> ご回答ありがとうございます。
> コンテナ内にlibsqlite3-devをインストールした後、改めて「デバッグモードのアプリをArmadilloで実行」を行いましたが、同じSqfliteFfiExceptionが表示されました。
コンテナ内に "libsqlite3.so" が存在していることは確認できましたでしょうか。

> 一応コンテナ内で$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH/usr/lib/aarch64-linux-gnuも実行しています。
> インストール後に何か設定が必要でしょうか?
コロンが抜けています。正しくは以下かと思います。
$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/aarch64-linux-gnu

> コンテナ内に "libsqlite3.so" が存在していることは確認できましたでしょうか。

不勉強で申し訳ありませんが、コンテナ内にlibsqlite3-devをインストールした際にできたlibsqlite3.soがあることはどのようにして確認できるでしょうか?

> コロンが抜けています。正しくは以下かと思います。
> $export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/aarch64-linux-gnu

申し訳ありません。こちらは私がこちらに入力する際のミスで、実際にTeraTermに入力した際にはコロンを入れた状態です。

佐藤です。

> > コンテナ内に "libsqlite3.so" が存在していることは確認できましたでしょうか。
>
> 不勉強で申し訳ありませんが、コンテナ内にlibsqlite3-devをインストールした際にできたlibsqlite3.soがあることはどのようにして確認できるでしょうか?

最初の質問で、
> libsqlite3.soファイルがコンテナ内にあるかどうかを検索をかけたところ、/usr/lib/aarch64-linux-gnu/libsqlite3.so.0.8.6のパスが返ってきました。
とありますので、このときと同じ方法で検索をかけてみると、libsqlite3.so がヒットするかと思います。