![]() |
1
1
我认为问题与宏调用中的逗号有关。括号内的逗号被忽略,但大括号、方括号或尖括号中的逗号不被忽略,因此它将第一个参数拆分为两个:
我没有看过EM_ASM的定义,但由于它只需要一个参数,我的猜测是,如果它得到了多个参数,它会自动用逗号将它们粘在一起。然而,其他EM_ASM_*宏不知道需要多少参数,因此它们无法做到这一点。 对于修复,通常可以包含额外的括号。例如,您应该能够使用:
括号不会伤害任何东西,但会将宏参数正确地粘在一起(有时不那么容易,但通常是这样)。 我知道在预处理器规范中修复这个问题已经是很长一段时间的话题了——希望有一天会这样。当在宏调用中包含模板时,这会变得特别烦人,因为在这种情况下,没有简单的方法将所有内容都括在括号中。 编辑:我检查了EM_ASM定义,事实上,它是一个可变宏,将参数粘合在一起。 |
![]() |
Ela782 · 最新的emscripten使用什么版本的LLVM? 7 年前 |
![]() |
Izumi Kawashima · 如何列出em++找到的所有符号? 8 年前 |
![]() |
Iter Ator · 如何在自动执行函数中打包我的库?(铭文) 8 年前 |
![]() |
Cod1ngFree · 使用Emscripten编译GLUT 8 年前 |