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
  1. 修改编译选项
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

  1. 加载脚本

    最后生成的动态库使用spinit文件加载的,需要注意这个文件存放的位置在ft_cpinit中初始化

  2. 生成配置

    ./autogen.sh
    mkdir release
    cd release
    emconfigure ../configure --disable-debug --enable-xspice 
  3. 编译
    emmake make
    中间回碰到cmpp出错,可以再下载一份代码在主机上编译好之后将编译的cmpp文件夹覆盖到wasm编译的工程里

以上是关于wasm编译ngspice的xspice的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Emscripten 编译的程序中的 wasm-bindgen?

VS2013编译链接tcl/tk 8.6.4为共享库

对于WebAssembly编译出来的.wasm文件js如何调用

使用 wasm 将模块导入并编译到 webpack 中

哪些语言可以编译成 WebAssembly (Wasm)? [关闭]

使用 emcc 将 C++ 代码编译为 WASM 的问题