Emscripten 为未解析的 mcount 符号抛出异常

Posted

技术标签:

【中文标题】Emscripten 为未解析的 mcount 符号抛出异常【英文标题】:Emscripten throws exception for unresolved mcount symbol 【发布时间】:2017-03-06 01:11:24 【问题描述】:

试图让 emscripten 构建一个旧的 C 项目。它会构建,但会引发警告:

warning: unresolved symbol: mcount

这很奇怪,因为这不是我的代码中的内容,但它会出现在 .js 文件中的所有地方和奇怪的地方。说不清它在做什么。

尝试在浏览器中运行它会引发缺少函数的异常。

uncaught exception: abort(-1) at jsStackTrace@file: ...

【问题讨论】:

【参考方案1】:

原来它是我之前调用的-pg gcc 标志,因此我可以对其进行分析。

emcc main.c display.o azure.o -o main.html -lm -s USE_SDL=2 -s USE_SDL_TTF=2 -g -Wall -pg -O2 -Wl,-rpath,.

它会在任何地方插入它自己的 _mcount 函数,以查看零件需要多长时间。

删除它并记住下次您分析某些内容时不要让它进入提交。

【讨论】:

我讨厌那种感觉,当你觉得你以前来过这里,但你不记得路了。

以上是关于Emscripten 为未解析的 mcount 符号抛出异常的主要内容,如果未能解决你的问题,请参考以下文章

未解析的符号:来自 Emscripten 的 llvm_trap

具有多个闭包参数的函数给出错误“表达式解析为未使用的函数”

JSON值在javascript中解析为未定义[重复]

表达式解析为未使用的 I 值

表达式解析为未使用的 i 值 [重复]

如何使用库导入编译 C 文件到 webassembly 文件(Emscripten)