当前位置: 首页 > 工具软件 > Emscripten > 使用案例 >

Emscripten 编译器(emcc) 命令总结

陶星渊
2023-12-01

Emscripten 编译器(emcc) 命令总结

emsdk 相关命令

命令参数说明备注
emsdk帮助详情
emsdk helphelp帮助详情
emsdk --help–help帮助详情
emsdk list [–old][–uses]–old --usesc 查询 Emscripten SDK 和 工具 列表1.–old 返回所有版本;2. --users 返回不同 sdk 和依赖的组成
emsdk update更新 sdkgit pull 等价
emsdk update-tags更新 sdkgit 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-O201 模式 优化 javascript压缩 js
-O3-O302 模式 更多优化 js编译时间长,发布版使用
-Os-Os03 模式 额外的体积优化;影响运行效率影响 wasm 和 js 性能
-Oz-Oz03s 模式 进一步体积优化(不清楚实际情况,要多小是小) 更多参考 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-g4source 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

 类似资料: