wasm编译ngspice的xspice
Posted o_ra
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wasm编译ngspice的xspice相关的知识,希望对你有一定的参考价值。
ngspice使用的时候如果使用一些高级功能可能需要xspice的支持,这是个动态库,编译使用:
下载代码
git clone https://git.code.sf.net/p/ngs... ngspice-ngspice
打开编译环境
docker run -it --rm -v $(pwd):/home/src trzeci/emscripten sh
安装依赖的库
apt update
apt install flex bison autoconf libtool flex bison
- 修改编译选项
ngspice_LDFLAGS = -s EXPORT_ALL=1 -s "EXPORTED_FUNCTIONS=[\'_memset\', \'_main\']" -s MAIN_MODULE=1 -s FORCE_FILESYSTEM=1 -s "EXTRA_EXPORTED_RUNTIME_METHODS=[\'FS\']"
$(cm)/$(cm).cm : $(cm-objs)
#$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(VIS_CFLAGS) $(LDFLAGS) $^ $(LIBS) -o $@
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(VIS_CFLAGS) $(LDFLAGS) $^ $(LIBS) -o $(cm).wasm
加载脚本
最后生成的动态库使用spinit文件加载的,需要注意这个文件存放的位置在ft_cpinit中初始化
生成配置
./autogen.sh mkdir release cd release emconfigure ../configure --disable-debug --enable-xspice
- 编译
emmake make
中间回碰到cmpp出错,可以再下载一份代码在主机上编译好之后将编译的cmpp文件夹覆盖到wasm编译的工程里
以上是关于wasm编译ngspice的xspice的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Emscripten 编译的程序中的 wasm-bindgen?
对于WebAssembly编译出来的.wasm文件js如何调用