当前位置: 首页 > 软件库 > 开发工具 > 编译器 >

Cheerp

用于 Web 的 C++ 编译器
授权协议 GPL
开发语言 C/C++
所属分类 开发工具、 编译器
软件类型 开源软件
地区 不详
投 递 者 魏臻
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Cheerp 是一个基于 LLVM monorepo 的 C++ 编译器,允许将 C/C++ 代码编译为 WebAssembly 和 JavaScript。

Cheerp 基于并集成到 LLVM/clang 基础架构,具有许多自定义优化步骤,拥有强大的 JavaScript-C++ 互操作性、对异常和 ES6 模块的支持,以及基于 LLVM 的 clang 构建的性能和代码生成能力,可以最大限度地提高性能并最小化编译后的 JavaScript/WebAssembly 输出的大小

Cheerp 主要用于将现有的 C/C++ 库和应用程序移植到 HTML5,但也可用于从头开始编写高性能 Web 应用程序和 WebAssembly 组件。

独特之处:

  1. 生成更快的 WebAssembly 代码,也可以编译为具有动态内存(垃圾收集输出)、零开销 DOM 操作和访问 Web API 以及卓越的 C++到JavaScript 互操作性的 JavaScript 输出。
  2. 允许将单个代码库编译为 WebAssembly 和 JavaScript 的组合,方法是(可选)使用[[cheerp::genericjs]]和标记代码部分[[cheerp::wasm]]
  3. 生成更小的 WebAssembly 输出。
  • 这个文章主要描述在cheerp环境下, c++和javascript代码减小类型转换开销 在cheerp,基本数据类型的C ++阵列如char,unsigned char,short,unsigned short,int,unsigned int,float和double由JavaScript键入相应类型的阵列的支持。 Cheerp提供了一些API来将C ++数组转换为底层的Typed Array

  • 这个文章主要描述在cheerp环境下, js和c++侧数据类型的转换和包装内容。 1 基础数据类型 首先我们知道javascript是弱类型的脚本语言,开发者在开发的时候不必关注数据的类型和边界,而c++是静态编程语言, 在编译阶段就需要确定类型,在编译器处理的时候可以获得更好的优化。 我们都知道js所拥有的数值类型,(int,uint,float,double)默认不区分都是double类型存储

  • 这个文章主要演示了一个cheerp交叉编译的简单的例子对比测试。这个例子中我们把一个c文件的算法交叉到js侧。 先行准备 我们分别使用js的一个aes库,和交叉过去的一个c实现的库分别分别在node和浏览器端做性能比较。 先把c算法库交叉到一个bc(clang 的byte code)备用, 验证好执行正确结果。 clang -c -w $(CHEERP_FLAG) $(WASMFLAGS) -O3

  • 这个文章主要演示了一个cheerp交叉编译的简单的例子对比测试。这个例子中我们把一个c文件的算法交叉到js侧。 先行准备 我们分别使用js的一个aes库,和交叉过去的一个c实现的库分别分别在node和浏览器端做性能比较。 先把c算法库交叉到一个bc(clang 的byte code)备用, 验证好执行正确结果。 clang -c -w $(CHEERP_FLAG) $(WASMFLAGS) -O3

 相关资料
  • 问题内容: 我知道有一个“适用于Python 2.7的Microsoft Visual C ++编译器”,但是目前或计划中是否存在针对Python 3.4的Microsoft Visual C 编译器或适用于Python 3.x的夏娃Microsoft Visual C 编译器?如果我不必在整个实验室中安装其他版本的Visual Studio,那将是非常有益的。 问题答案: 不幸的是,要能够使用其

  • 问题内容: 我正在寻找一种在开发过程中按需在服务器端编译CSS LESS文件的方法。例如,如果浏览器向/assets/css/foo.css发出请求,我希望服务器注意到有一个/assets/css/foo.less文件,然后编译该文件并返回生成的CSS。我猜想某个地方必须有一个LESS servlet可以做到这一点? 我正在使用Spring MVC应用程序运行tomcat 7 如何配置Java W

  • 本文向大家介绍C++ 用Clang编译,包括了C++ 用Clang编译的使用技巧和注意事项,需要的朋友参考一下 示例 由于锵前端被设计为是与GCC兼容,当你交换可通过GCC编译大多数程序将编译g++通过clang++在构建脚本。如果没有-std=version给出,将使用gnu11。 习惯了MSVC的Windows用户可以cl.exe与交换clang-cl.exe。默认情况下,clang尝试与已安

  • 有没有办法使用MinGW作为MS Visual C++的替代品?很多Python包都需要VS C++才能安装:4.5GB的磁盘空间!MinGW只需要450 MB,就可以达到编译C/C++的目的。 我使用的是Visual Studio代码,我尽量避免在3)-->中建议的Microsoft Visual C++安装,您也可以只安装C++构建工具:https://Code.visualstudio.co

  • 我使用以下两个C++编译器: cl.exe:Microsoft(R)C/C++优化编译器版本19.00.24210 for x86 g++:g++(Ubuntu 5.2.1-22Ubuntu2)5.2.1 201 51010 当使用内置正弦函数时,我得到不同的结果。这并不重要,但有时结果对我来说太有意义了。下面是一个具有“硬编码”值的示例: 使用cl.exe生成的结果: G++的结果: 我知道G+