🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

Q&A

解決済

1回答

1752閲覧

Dartにて、ffi.DynamicLibrary.openを用いてCライブラリをopenしたく思います。

morisovan

総合スコア0

Dart

Dartは、Googleによって開発されたJavaScriptの代替となることを目的に作られた、ウェブ向けのプログラミング言語である。

0グッド

0クリップ

投稿2021/03/05 05:02

前提・実現したいこと

Linux環境にて、Dartのffi.DynamicLinkを使用してCライブラリをopen使用としましたが、openできません。
cライブラリはtest.soでこのライブラリはtest2.soをmakeでダイナミックリンクしております。
test.soは読み込めているのですが、test2.soがありませんとエラーが発生します。
困り果てており、、ご教示よろしくお願いいたします。

発生している問題・エラーメッセージ

invalid argument(s):Failed to load dynamic library(test2.so.16:cannt open shared object file : No such file or directory)

該当のソースコード

言語:dart import 'dart::ffi' import 'dart::io' main(){ var path="/lib/test.so"; final dylib = ffi.DynamicLibrary.open(path); }

試したこと

test.soにtest2.soをダイナミックリンクしないようにすればopenは成功しました。

補足情報(FW/ツールのバージョンなど)

64bit ubuntu18 環境

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

morisovan

2021/03/05 10:20

ご教示ありがとうございます。 test.soを作成時のmakeに-rpath-linkを設定し、test2.soを指定してライブラリを作成してみました。 期待としてはlddでnot Foundが解決されたら。。と思いましたが、依然としてnot Foundでした。※パスはあっております。 下名のライブラリ作成方法がまずいのか、原因がわかっておりません。
morisovan

2021/03/08 05:05

LD_PATHをflutterがDynamicリンクするタイミングで設定することで、解決できました。本当にありがとうございました。
guest

回答1

0

自己解決

LD_PATHをflutterがDynamicリンクするタイミングで設定することで、解決できました。本当にありがとうございました。

投稿2021/03/08 05:08

morisovan

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問