wasm中使用gsl庫

編譯要在linux下進行,環境搭建見上篇,若是不能連外網,比較簡單是使用docker命令
docker run -it --rm -v $(pwd):/home/src trzeci/emscripten shlinux

解壓下載到的壓縮包
tar -zxvf gsl-2.6.tar.gz
編譯庫docker

emconfigure ./configure
emmake make

編譯結束時候會提示錯誤相似
error: undefined symbol: gsl_ran_beta (referenced by top-level compiled C/C++ code)
百度說是wasm對動態庫支持很差,這是編譯動態庫時候出問題了先無論這些。code

在.libs目錄已經生成了靜態庫libgsl.a把這個拷貝出來備用,頭文件在gsl目錄下拷貝出來備用ip

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

相關文章
相關標籤/搜索