2016-11-30 30 views
1

我想用emscripten和C++做一些库测试。我需要让一些JavaScript变量在C++调用之间保持不变,但我一直无法弄清楚如何去做。如何使用C++使用Emscripten在JavaScript中分配变量并将它们保持在范围内?

我觉得这可能是简单的,我错过了,或者它不可能。这是一个独立的程序,没有别的东西在运行。下面是一个最小的例子:

#include <emscripten.h> 

int main() { 
    //this works and prints 1 
    EM_ASM(
     var x = 1; 
     console.log(x); 
    ); 
    //this throws an error 'x is not defined' 
    EM_ASM(
      console.log(x); 
    ); 
    return 0; 
} 

予编译并使用下面的命令运行该代码:

emcc main.cpp 
node a.out.js 

的输出是所述第一呼叫正确,但第二个呼叫抛出一个没有定义的错误。我需要一些方法来保持这个变量在范围之间的调用,所以我可以使用它。

任何帮助?谢谢。

回答

1

您可以删除var之前宣布x

#include <emscripten.h> 

int main() { 
    EM_ASM(
     x = 1; 
     console.log(x); 
    ); 
    EM_ASM(
     console.log(x); 
    ); 
    return 0; 
} 

这似乎与EMCC V1.35工作

相关问题