执行emcc代码覆盖编译命令遇未定义符号错误,如何实现代码覆盖?
解决emcc代码覆盖编译错误的配置方法
出现这类未定义符号错误,是因为直接用-fprofile-arcs -ftest-coverage不符合emcc的WebAssembly环境适配逻辑,正确配置方式如下:
- 替换原有编译命令,使用emcc专门为WebAssembly优化的代码覆盖开关
--coverage,它会自动处理所有依赖的符号和库:
emcc --coverage demo.cpp
这个命令会自动引入llvm_gcov相关实现,无需手动添加EXPORTED_FUNCTIONS来导出那些未定义的符号。
如果需要分析覆盖结果:
- 运行生成的wasm程序后,可通过emcc内置机制导出gcda文件,再用标准
gcov工具分析代码覆盖数据。
内容的提问来源于stack exchange,提问作者Judy Hopps
相关产品推荐
相关产品推荐

