Substrate VM 既支持将 Java 代码编译为本地可执行文件(默认模式),也支持编译为本地共享库文件(用–shared 选项开启),两者的主要差异在于:

  • 入口函数不同,可执行文件的入口就是 main 函数,库文件是一组显式声明的 API;
  • 库文件会被 C 程序调用,需要一套能够保证调用双方相互理解的数据结构和基本语义的协议。