Javascript emscripten webworker的最小工作示例 我试图用C++来构建一个C++中的基本WebWork实例。API看起来很简单,但我无法让它工作。实际上,我想在我的项目中实现这个功能,但失败后,我尝试制作一个最小的示例,但它也不起作用
我有main.cpp:Javascript emscripten webworker的最小工作示例 我试图用C++来构建一个C++中的基本WebWork实例。API看起来很简单,但我无法让它工作。实际上,我想在我的项目中实现这个功能,但失败后,我尝试制作一个最小的示例,但它也不起作用,javascript,c++,web-worker,emscripten,Javascript,C++,Web Worker,Emscripten,我有main.cpp: #include <emscripten/emscripten.h> #include <emscripten/bind.h> #include <iostream> namespace e = emscripten; int counter = 0; void cback(char* data, int size, void* arg) { std::cout << "Callback" << s
#include <emscripten/emscripten.h>
#include <emscripten/bind.h>
#include <iostream>
namespace e = emscripten;
int counter = 0;
void cback(char* data, int size, void* arg) {
std::cout << "Callback" << std::endl;
counter++;
}
void loop() {
std::cout << "Counter: " << counter << std::endl;
}
int main() {
std::cout << "Main func." << std::endl;
worker_handle worker = emscripten_create_worker("worker.js");
emscripten_call_worker(worker, "one", 0, 0, cback, (void*)42);
emscripten_set_main_loop(loop, 2, true);
return 0;
}
通过html端的
标记加载一个简单的js
Main加载并启动,输出
Main func.
,然后下载worker js。但既不输出工作者
也不输出回调
。未报告任何错误。使用BUILD\u AS\u WORKER
标志编译
emcc -std=c++11 worker.cpp -s EXPORTED_FUNCTIONS="['_one']" -s BUILD_AS_WORKER=1 -o worker.js
运行em++而不是emcc是否会有所不同?为什么要导入
emscripten/bind.h
?
emcc -std=c++11 main.cpp -o main.js
emcc -std=c++11 worker.cpp -s EXPORTED_FUNCTIONS="['_one']" -o worker.js
emcc -std=c++11 worker.cpp -s EXPORTED_FUNCTIONS="['_one']" -s BUILD_AS_WORKER=1 -o worker.js