Contents

dart2native

使用dart2native命令AOT(提前)将Dart程序编译为本机x64机器代码 . 在Windows,macOS和Linux上支持dart2native命令.

dart2native的输出是一个独立的可执行文件(默认)或一个可以使用dartaotruntime命令运行的AOT快照. 独立的可执行文件是从指定的Dart文件及其依赖项编译的本地机器代码,以及处理类型检查和垃圾回收的小型Dart运行时.

AOT快照不包括Dart运行时. 如果要分发多个程序并且磁盘空间有限,请考虑使用快照.

Creating standalone executables

这是使用dart2native创建独立可执行文件的示例:

$ dart2native bin/main.dart -o bin/my_app

您可以像分发其他任何可执行文件一样分发和运行该可执行文件:

$ cp bin/my_app .
$ ./my_app

Creating AOT snapshots

要创建AOT快照,请在命令中添加-k aot

$ dart2native bin/main.dart -k aot

然后,您可以使用dartaotruntime命令运行该应用程序:

$ dartaotruntime bin/main.aot

Known limitations

dart2native的初始(Dart 2.6)版本具有一些已知的局限性:

No cross-compilation support (issue 28617)
编译器仅支持为其运行的操作系统创建机器代码. 您需要在macOS,Windows和Linux上运行编译器三次,以为所有三个操作系统创建可执行文件. 解决方法是使用支持所有三个操作系统的CI(连续集成)提供程序.
No signing support (issue 39106)
可执行文件的格式与标准签名工具(如codesign和SignTool)不兼容.
No support for dart:mirrors and dart:developer
dart2native编译的代码可以使用Dart VM支持的所有其他库. 有关您可以使用的核心库的完整列表,请参阅核心Dart库表中AllAOT条目.

Options

dart2native的第一个参数是主Dart文件的路径:

dart2native <main-dart-file> [<options>]

您可以使用以下选项:

-D <key>=<value> or --define=<key>=<value>
定义环境变量. 要指定多个变量,请使用多个选项或使用逗号分隔键值对.
--enable-asserts
Enables assert statements.
-h or --help
显示所有选项的帮助.
-k (aot|exe) or --output-kind=(aot|exe)
指定输出类型,其中exe是默认值(独立可执行文件). 要生成AOT快照,请使用-k aot .
-o <path> or --output=<path>
将输出生成到<path> . 如果不使用此选项,则输出将进入主Dart文件旁边的文件中. 独立的可执行文件默认带有后缀.exe ; AOT快照后缀为.aot .
-p <path> or --packages=<path>
指定软件包解析配置文件的路径. 有关更多信息,请参见程序包解析配置文件.
-v or --verbose
显示更多信息.

dart2aot

Dart 2.6之前的版本包含一个名为dart2aot的工具,该工具可生成AOT快照. dart2native命令取代了dart2aot并具有dart2aot功能的超集.

by  ICOPY.SITE