首先要在Cmake工程中的cmakelists.txt文件中引入Emscripten工具链:
set(CMAKE_TOOLCHAIN_FILE "D:/CppPkg/emsdk/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake")
直接看C++代码:
#include <emscripten/emscripten.h>
#include <cstdlib>
extern "C" {
struct DataResult {
double* dArr;
int propCount;
};
EMSCRIPTEN_KEEPALIVE
double sumArray(double* fArr, int arrLen) {
double sum = 0.0;
for (int i = 0; i < arrLen; i++) {
sum += fArr[i];
}
return sum;
}
EMSCRIPTEN_KEEPALIVE
double* vectorSum(double* vectorA, double* vectorB, int vecLen) {
double* resArr = (double*)malloc(vecLen * sizeof(double));
for (int i = 0; i < vecLen; i++) {
resArr[i] = vectorA[i] + vectorB[i];
}
return resArr;
}
EMSCRIPTEN_KEEPALIVE
DataResult* createDataResult(double* dArr, int propCount) {
DataResult* dtRes = (DataResult*)malloc(sizeof(DataResult));
dtRes->dArr = dArr;
dtRes->propCount = propCount;
return dtRes;
}
EMSCRIPTEN_KEEPALIVE
double* allocateDoubleMemory<