一、查看帮助
1. 命令行
emcc --help
2. 官网
Emscripten Compiler Frontend (emcc) — Emscripten 3.1.42-git (dev) documentation
二、常用命令
emcc [options] files
options有如下选择:
-On
优化,n表示不同优化等级和选项
-s[ ]OPTION[=value]
emscripten的构建选项,-s和OPTION中间的空格可以省略,=value也可以省略表示使能。
所有的OPTION都在src/settings.js中,常用的OPTION有:
WASM
-
WASM=0生成asm.js格式(适用于WebAssembly不支持的情况)
-
WASM=1生成包含wasm格式
-
WASM=2 asm.js与wasm格式均生成,添加支持判定,优先使用wasm格式。
WASM_ASYNC_COMPILATION
是否异步加载wasm,主线程需要用异步,worker中可以同步加载
ENVIRONMENT
设定当前的运行环境,避免生成的js文件中判定环境,并运行不同的代码
-
‘web’ - the normal web environment.
-
‘worker’ - a web worker environment.
-
‘node’ - Node.js.
-
‘shell’ - a JS shell like d8, js, or jsc.
内存相关
// 指定内存的大小和是否内存会增长
-
INITIAL_MEMORY初始内存
-
MAXIMUM_MEMORY最大内存
-
ALLOW_MEMORY_GROWTH允许内存增长
EXPORT_NAME
导出模块名称,常和MODULARIZE_INSTANCE/MODULARIZE配合使用
MODULARIZE_INSTANCE
是否生成模块instance(单例),返回{}这种格式,并且初始化wasm
MODULARIZE
是否生成模块,返回function这种格式,模块可以初始化多个object
EXPORT_ES6
是否导出ES6模式 Export using an ES6 Module export rather than a UMD export. MODULARIZE must be enabled for ES6 exports.
// It might not be supported on old browsers.
STANDALONE_WASM
js中内容尽量多的放入wasm中实现,减少依赖
BUILD_AS_WORKER
是否是worker模式 If set to 1, this is a worker library, a special kind of library that is run
EXPORT_NAME
设置输出的名称:需要提前定义该object={},编译出的模块中会填充object函数方法 (用起来有一些问题)