Emscripten C ++库链接

时间:2015-03-05 13:29:03

标签: javascript c++ linker libraries emscripten

我有一个基本的C ++ GLUT程序,我正在尝试从C ++函数内部运行Javascript代码。我找到了Emscripten并做了很多测试,但我无法弄清楚如何在我的项目中实际使用它。我将emscripten文件夹添加到我的编译器的搜索目录中,并且能够#include,但我不断获得对emscripten_run_script的未定义引用。'我知道这是一个没有链接库(-1SDL,-1glew32等)的问题。我查看了Emscripten网站上的示例和教程,但我不需要代码,我需要示例项目或只需要Emscripten库的名称和位置。如何链接Emscripten以便我可以从我的程序中调用Emscripten函数,或者它是否可能?

编辑:

由于Emscripten是一个Javascript编译器,有没有办法(而不是将库链接到我的项目)让Emscripten作为部分代码的编译器,然后切换回g ++?

1 个答案:

答案 0 :(得分:0)

这是一个示例项目,当您将调用添加到emscripten_run_script时可以工作。下载Tim Hutton's OpenGL sample program in C++并将以下代码添加为main()函数的第一行:

emscripten_run_script("alert('hi')");

它完美地工作。我刚刚对其进行了测试,它会按设计显示警报。我在Windows上使用了最新的Emscripten SDK,并使用此命令来编译main.cpp:

emcc main.cpp -s WASM=1 -s USE_SDL=2 -O3 -o index.js

我还尝试了使用EM_JS的内联JavaScript方法。您可以阅读所有关于here的内容。

我在编译为WebAssembly( -s WASM = 1 )和JavaScript( -s WASM = 0 )时都对此进行了测试。两种情况都可以正常工作,并且具有相同的行为。