Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript emscripten webworker的最小工作示例 我试图用C++来构建一个C++中的基本WebWork实例。API看起来很简单,但我无法让它工作。实际上,我想在我的项目中实现这个功能,但失败后,我尝试制作一个最小的示例,但它也不起作用_Javascript_C++_Web Worker_Emscripten - Fatal编程技术网

Javascript emscripten webworker的最小工作示例 我试图用C++来构建一个C++中的基本WebWork实例。API看起来很简单,但我无法让它工作。实际上,我想在我的项目中实现这个功能,但失败后,我尝试制作一个最小的示例,但它也不起作用

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

我有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" << 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