美文网首页
Emscripten 编译器(emcc) 命令总结

Emscripten 编译器(emcc) 命令总结

作者: 豪爵吸金ing | 来源:发表于2020-11-20 18:47 被阅读0次

    emsdk 相关命令

    命令 参数 说明 备注
    emsdk 帮助详情
    emsdk help help 帮助详情
    emsdk --help –help 帮助详情
    emsdk list [–old][–uses] –old --uses c 查询 Emscripten SDK 和 工具 列表 1.–old 返回所有版本;2. --users 返回不同 sdk 和依赖的组成
    emsdk update 更新 sdk git pull 等价
    emsdk update-tags 更新 sdk git pull 等价
    emsdk uninstall <tool/sdk name> 安装
    emsdk install <tool/sdk name> 卸载
    emsdk activate <tool/sdk name> 设置当前 sdk

    emcc 相关命令

    命令 参数 说明 备注
    emcc --help 帮助详情
    emcc -O0 -O0 包含所有断言(默认模式))) 快速 build
    -O1 -O1 简单优化,会移除断言,优化而二进制编译
    -O2 -O2 01 模式 优化 javascript 压缩 js
    -O3 -O3 02 模式 更多优化 js 编译时间长,发布版使用
    -Os -Os 03 模式 额外的体积优化;影响运行效率 影响 wasm 和 js 性能
    -Oz -Oz 03s 模式 进一步体积优化 (不清楚实际情况,要多小是小) 更多参考 Optimizing Code
    -s -s OPTION[=VALUE] JavaScript 代码生成的选项 两种方式 1.直接传参( -s RUNTIME_LINKED_LIBS="[‘liblib.so’]");2.json 文件(-s DEAD_FUNCTIONS=@/path/to/file);更多参考 settings.js
    -g -g 保留 debug 信息 等同于 -g3
    -g0 -g0 尽量保持代码的可调试性
    -g1 -g1 保留空格
    -g2 -g2 保留函数名
    -g3 -g3 保留 debug 信息 等同 -g
    -g4 -g4 source map 模式
    –profiling –profiling 生成 js 时使用默认值,增加可读性 -g2 模式下
    –profiling-funcs –profiling-funcs 生成 js 时,保留原函数名 -g2 模式下
    –tracing –tracing 启用 Emscripten 的 tracing API 参考文档 tracing API
    –emit-symbol-map –emit-symbol-map 保存压缩文件和源文件的 function Names 的映射文件 适用于 “-O2”及其已上;并且 q 没有 “-g” 设置时
    –js-opts –js-opts <level> js 优化器;“0”:不使用优化;“1”:使用优化 “-O<level>” 下不需要设置该项
    –llvm-opts –llvm-opts <level> LLVM 优化器;“0”:不使用优化(-O0);“1”: (-O1);“2”: (-O2);“3”: (-O3) “-O<level>” 下不需要设置该项
    –llvm-lto –llvm-lto <level> link-time optimizations [0-3] 不稳定,不推荐使用
    –closure –closure <level> 闭包编译器 ;“0”:不使用优化;“1”:使用优化(JavaScript code;不包括 WebAssembly 或 asm.js);“2”:使用优化 all 不稳定,不推荐使用
    –pre-js –pre-js <file> 处理前置入文件
    –post-js –post-js <file> 处理后置入文件
    –embed-file –embed-file <file> 指定要嵌入生成的 JavaScript 中的文件(文件或文件夹)) “–embed-file dir/file.dat”
    –preload-file –preload-file <file> 预加载文件 存储在 filename.data ;xxx.html 存储在 xxx.htmlxxx.data “–embed-file dir/file.dat”
    –exclude-file –exclude-file <file> embed-file preload-file排除文件
    –use-preload-plugins –use-preload-plugins <name> 加载插件
    –shell-file –shell-file <path> HTML 的模板文件
    –source-map-base –source-map-base <base-url> source map 根目录
    –js-transform –js-transform <cmd> 编译器会将修改的和未修改的
    –bind –bind 使用 bindings Api 参考文档 bind API
    –ignore-dynamic-linkin –ignore-dynamic-linkin 忽视动态链接
    ----js-library –js-library <lib>
    -v -v 开启所有打印
    –cache –cache 依赖缓存
    –clear-cache –clear-cache 清除依赖缓存
    –clear-cache –clear-cache 清除依赖缓存
    –show-ports –show-ports 展示编译端口
    –save-bc PATH ----save-bc PATH
    –memory-init-file –memory-init-file <level> 生成一个内存初始化文 ;0:关闭 1:开启
    -Wwarn-absolute-paths -Wwarn-absolute-paths 启用在“-I”和“-L”命令行指令中使用绝对路径的警告
    –proxy-to-worker –proxy-to-worker 启用 work.js
    –emrun –emrun 启用 work.js

    参考文档 github emsdk

    参考文档 settings.js

    参考文档 tracing API
    参考文档 bind API


    emcc 优化方案
    https://emscripten.org/docs/optimizing/Optimizing-Code.html
    https://cloud.tencent.com/developer/article/1695218

    相关文章

      网友评论

          本文标题:Emscripten 编译器(emcc) 命令总结

          本文链接:https://www.haomeiwen.com/subject/xwkjiktx.html