2016-11-30 28 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工作

相關問題