innative(AOT编译器)V0.1.10下载
您的位置: 系统城软件园 > 网络工具 > 编程建站 > innative(AOT编译器) 0.1.10
innative(AOT编译器)

innative(AOT编译器)

0.1.10 功能全面且实用的AOT编译器 下载地址
  • 更新时间:2022-05-19
  • 软件大小:854.05KB
  • 软件类别:编程建站
  • 软件授权:免费下载
  • 软件语言:简体中文
  • 应用平台:WinAll
  • 软件厂商:未知
  • 软件官网:http://www.xitongcheng.com/
  • 软件评分:
  • 0%
  • 0%
软件介绍 相关教程 软件截图 网友点评 下载地址

基本介绍

innative(AOT编译器)是一款专门为WebAssembly设计的AOT编译器工具。用户们通过这款innative(AOT编译器)可以轻松的编译C语言的二进制文件,可以有效的提高程序员的工作效率。系统城给大家带来了innative(AOT编译器)官方中文版安装包下载,还有其使用说明,如果你需要这款软件就可以下载使用哦。

相似软件 版本说明 下载地址
PowerGREP(文件搜索编译软件) 5.0.5 查看
360加固助手 3.2.4.0 查看
koala编译工具 2.3.0 查看
HTML Compiler(HTML编译工具) 2021.47 查看
RisohEditor(文件资源编译器) 5.6.9 查看

更新日志

废弃了Makefiles,转而使用CMake项目。(#33)

添加了#49 WASM指令执行计数器

添加了#26完全支持汇编脚本

增加了#20选项,可设置自定义启动函数

修正了#71处理调试信息时的边缘案例

修正了#72使用共享库时的绝对路径问题

修正了错误的llvm::Twine用法

改变了日志记录以使用回调函数

停止对内存密集的调试信息使用贪婪的分配器

修正了WAT解析过程中过多的内存使用

innative功能介绍

1、inNative是跨平台的WebAssembly实现,可以内嵌到您的程序中,还可以作为单独的运行时安装。它将WebAssembly模块编译成C二进制文件,可以将其连接为静态或动态库,并可以利用简洁的C接口进行浏览。

2、尽管inNative符合规定,但它为您带来了一些选择项,可以调节要实施的标准的什么部分,进而容许您指定如何对所形成的WebAssembly二进制文件进行沙盒化(或不进行沙盒化)。这使inNative可以可靠地在主机程序中执行沙盒WebAssembly,或是像本机程序一样编译启用内核函数的模块。

3、辅助功能

该inNative默认环境带来了好多个辅助功能致力于使调试本地WebAssembly非常容易。所有这些函数都被视作具备默认启用约定的初始C函数,而且应像其他任何C函数一样导入。编译器自身还带来了一些本质函数,从WebAssembly的角度看来他们就像辅助函数。在其中一些功能并不安全,假如开启了白名单,则需要像其他C函数一样将所有白名单纳入白名单。

innative特色说明

1、迅速的渲染速度

就像AOT模式的界定所说的一样,因为declarative的编码会被事先编译,可以立即应用这些可以同时执行的imperative代码,马上给用户呈现应用。

2、更早查验出template错误

因为需要预编译,AOTcompiler会在搭建阶段就检测到template的关联错误,并把这些错误提早报告给我们写程序的人,而不是直到runtime编译才让用户发觉这些错误。

3、更高一些的client-side安全性

因为templates和components在给clientside触碰到之前就被事先编译成了JavaScript,clientside没有办法载入到templates,HTML和JavaScript的分析也不会存在很大的危险性,那样也让Client-sideinjectionattacks也会显得更加困难。

innative使用说明

静态嵌入

对于要加载WebAssembly模块的大多数应用程序,建议使用静态嵌入inNative方法。尽管依赖于平台,但所有平台都必须:

1、下载或安装SDK。

2、链接到inNative静态库

3、将include/innative头文件添加到项目

4、包含inNative Default Environment静态库

静态库不能包含其他静态库,因此您需要将其包含innative.lib在正在构建的根可执行文件或DLL中。因为您是静态嵌入库,所以您可以访问外部API中列出的所有静态函数。

Windows

静态库:innative.lib和innative-d.lib

默认环境:innative-env.lib和innative-env-d.lib

将静态库添加到项目的其他依赖项(对于Visual Studio)或构建系统的等效项。将默认环境库放在/bin/文件夹中,并确保将其随应用程序一起分发。

创建自定义环境

nNative嵌入环境实际上只是标准C库,它们将C函数公开给正在使用其进行编译的WebAssembly模块。但是,inNative还支持通过基于名称处理规则导出专门命名的函数来创建公开与WebAssembly兼容的函数的C库。

导出C函数

编译一个静态(或共享)库,该库将要公开的C函数导出到WebAssembly模块。如果您使用的是C ++,请确保使用extern "C"来防止任何C ++名称修改。然后,只需在引用库的同时编译WebAssembly模块即可。

Windows示例

./innative-cmd.exe your_module.wasm -l your_library.lib

因为Windows会.lib为DLL生成文件,所以您应该为DLL或静态库执行此操作。

Linux示例

./innative-cmd your_module.wasm -l your_library.a

或者

./innative-cmd your_module.wasm -L your_shared_library

Linux有一个特殊的-L选项,告诉它链接到应该使用的共享库。请记住,在上面的示例中,实际文件名为libyour_shared_library.so,这是链接程序将在当前路径中查找的名称。有时,链接程序可能对库路径有些挑剔,在这种情况下,您可能想指定整个绝对路径。

如果已按照上述说明进行操作,则现在可以使用基本的C导入方法来导入C函数:

(import “ ” “ your_function ”(func $ yourfunc(result i32)))

使用标准的C调用约定通常是一个好主意,但是对于C函数,您还可以使用其他调用约定

导出WebAssembly函数

也可以创建一个公开WebAssembly函数的库,但前提是它们必须遵循严格的规则集。“名称修饰”文章详细介绍了名称修饰如何将模块+函数名称对转换为单个C符号:[module]_WASM_[function]。可以相反地进行这种处理,以从C函数声明中获取WebAssembly模块+函数名称对。

再一次,extern "C"如果您使用的是C ++ ,请确保添加。如果使用此功能编译库并将其添加到inNative命令行中,则可以将其导入到WebAssembly模块中,如下所示:

(import “ your_module ” “ your_function ”(func $ functest(param i64 f64 f32 i32)(result i64)))

但是,有一些限制:函数必须具有默认的C调用约定!如果它使用任何其他调用约定,则该行为是不确定的且不安全的。此外,只能使用5种类型:

当然,您也可以替换uint32_t为int32_t,并uint64_t为int64_t没有问题。您也可以将任意指针类型替换为void*。但是,void*必须映射到i6464位体系结构,i3232位体系结构,或者cref要使用inNative的cref扩展名。在将C函数签名与WebAssembly等效项进行匹配时,请格外小心,因为签名不匹配会破坏沙箱或使程序完全崩溃。

请记住,WebAssembly函数胜过C函数-如果导出伪装为WebAssembly导入的C函数,但是存在另一个具有相同名称和函数定义的WebAssembly模块,则WebAssembly版本将获胜。在将C函数导出为WebAssembly导入时,请确保为假模块选择唯一的名称。

系统城温馨提示:

1.下载完成软件以后请点击安装完成安装步骤。

2 软件同时支持32位64位运行环境。

3.仅支持windows系统安装软件。

4.本软件绿色无毒,请放心使用。

下载地址 我要反馈
软件截图
网友评论

评论就这些咯,让大家也知道你的独特见解

以上留言仅代表用户个人观点,不代表系统城立场

软件介绍
下载地址
相关教程
软件截图
网友点评
返回顶部
回顶部 去下载