这是任务:我想运行由Emscripten创建的.js文件,从.cpp文件,从另一个.js文件。
例如:我有一个简单地显示文本"ping"的ping.cpp文件。我使用Emscripten创建ping.js来完成这项工作,我输入em++ ping.cpp,它就是- ping.js。
现在我可以使用node ping.js运行它,但我希望它从我的第二个名为init.js的.js文件中运行,我不知道该如何操作。因为ping.js没有显示"ping“的主函数,我可以从另一个.js文件或例如.html文件中调用它,所以它有68500行代码。
那么,我有没有机会从init.js运行ping.js呢?
发布于 2015-08-20 11:38:41
您可能应该在ping.js文件中加载一个脚本标记,就像任何其他脚本一样。诀窍是确保您想要使用的任何函数都可供您加载的其他脚本访问。为此,您需要设置一个EXPORTED_FUNCTIONS编译标志,以指示您希望保留哪些函数名。具体来说
em++ -s EXPORTED_FUNCTIONS="['_ping']" ping.cpp -o ping.js请注意,需要在函数名前面添加下划线('_'),以补偿名称损坏。
在您想要使用ping的另一个JS文件中,您需要设置它。确保首先加载已编译的脚本,然后执行以下操作:
ping = Module.cwrap('ping', 'null', ['string']);这将允许您使用ping,假设它具有void返回类型(因此为null)和单个c样式字符串参数(因此为' string ')。
如果您确实想要从另一个JavaScript文件加载它,请参阅以下答案:How do I include a JavaScript file in another JavaScript file?
https://stackoverflow.com/questions/32099307
复制相似问题