由于现在可以在 Flutter 中打开一个 DynamicLibrary(dylib、dll、so)。这些库是用 C 或 C++ 编写的。
我现在尝试构建一个基本的 dart 命令行应用程序,使用 编译它dart compile exe
并尝试使用 将其加载到我的 Flutter 应用程序中DynamicLibrary.open()
,就像使用 C/C++ 中的本机库一样。
typedef HelloWorldFunc = Void Function();
typedef HelloWorld = void Function();
...
final dynLib = DynamicLibrary.open('/path/to/cli.exe');
final HelloWorld func = dynLib.lookup<NativeFunction<HelloWorldFunc>>('hello_world').asFunction();
func();
(我已经按照本教程添加了一个名为 hello_world https://dart.dev/tutorials/server/get-started#3-create-a-small-app的空 void 函数 )
但是找不到符号:
Failed to lookup symbol 'hello_world': dlsym(0x7fec2310e5a0, hello_world): symbol not found
问题
通常是否可以在 Flutter 中打开 dart 编译的库,例如用 C++ 编写的 DLL?由于dart compile exe
也生成本机机器代码
如果是,如何?
谢谢!