emsdk错误:生成LLVM IR位代码,bt不是js / html

时间:2019-07-17 19:24:57

标签: emscripten

我正在尝试使用emscripten编译用于Web汇编的现有C ++项目。使用em ++,我能够生成LLVM IR位代码文件,但不能生成js / html。即当我尝试使用emcc project.bc -o project.html时,出现以下错误:

LLVM ERROR: asm() with non-empty content not supported, use EM_ASM() (see emscripten.h)
shared:ERROR

搜索网络没有帮助。如何追溯此错误?请提供任何建议。

1 个答案:

答案 0 :(得分:0)

您的代码似乎包含asm-declaration。这样可以将汇编代码直接嵌入到您的C ++代码中。

由于WebAssembly的工作方式不同,因此此汇编代码无用,这就是为什么编译器在找到非空asm()语句时会抱怨(如果它们为空,则编译器会忽略它们)。

您可以尝试将此代码放入条件宏中,并查看生成的WebAssembly代码是否仍然有效。

#ifndef __EMSCRIPTEN__
asm( stuff here )
#endif