wasm中使用gsl库

编译要在linux下进行,环境搭建见上篇,如果不能连外网,比较简单是使用docker命令
docker run -it --rm -v $(pwd):/home/src trzeci/emscripten sh

解压下载到的压缩包
tar -zxvf gsl-2.6.tar.gz
编译库

emconfigure ./configure
emmake make

编译结束时候会提示错误类似
error: undefined symbol: gsl_ran_beta (referenced by top-level compiled C/C++ code)
百度说是wasm对动态库支持不好,这是编译动态库时候出问题了先不管这些。

在.libs目录已经生成了静态库libgsl.a把这个拷贝出来备用,头文件在gsl目录下拷贝出来备用

使用类似命令
emcc demo.cc libgsl.a -I. -o demo.js -s "EXTRA_EXPORTED_RUNTIME_METHODS=['ccall', 'cwrap', 'setValue', 'getValue']" -lm
就可以使用gsl库了

你可能感兴趣的:(webassembly,c,javascript)