# swig 绑定说明 ## 1. Java 绑定 ### 1.1 Windows环境 下载 [swig](https://www.swig.org/download.html),解压,修改 `win_java.bat`,将 `swig.exe` 路径修改为你的路径。 需要已安装 `Visual Studio`,已安装 `jdk` 并配置了 `JAVA_HOME` 环境变量。 打开 `x64 Native Tools Command Prompt for VS 2019`, 切换到当前目录,执行 `win_java.bat`。 ### 1.2 类unix 环境 使用包管理工具安装 `swig` 如: ```bash sudo apt-get install swig # 或者 sudo yum install swig # 或者 brew install swig ``` 需要 `gcc`, `jdk`,并配置了 `JAVA_HOME` 环境变量。 `mac` 系统执行 `mac_java.sh`,其他执行 `linux_java.sh`。 ## 2. C# 绑定 ### 2.1 Windows环境 下载 [swig](https://www.swig.org/download.html),解压,修改 `win_csharp.bat`,将 `swig.exe` 路径修改为你的路径。 需要已安装 `Visual Studio`。 打开 `x64 Native Tools Command Prompt for VS 2019`, 切换到当前目录,执行 `win_csharp.bat`。 ### 2.2 其他系统 请自行研究。 ## 3. Node.js 绑定 ### Windows 环境 1. 安装 `node-gyp`: `npm install -g node-gyp` 2. 使用 `swig` 生成代码 ``` swig -c++ -javascript -node libademco.swig ``` 将生成 `libademco_wrap.cxx`. 3. 编译 执行 `node-gyp configure build`,将以配置文件 `binding.gyp` 生成工程并编译得到 `libadmeco_js.node`,`Windows` 下应为 `build/Release/libadmeoc_js.node` 4. 运行示例 `node nodejs-demo.js` ### Ubuntu20.04 #### 1. 更新 `swig` `apt` 安装的 `swig` 版本是 `4.0.1`不匹配,需要卸载后编译安装. ```bash apt update -y # 卸载旧版 swig apt purge swig -y # 安装依赖库 apt install libpcre2-dev libbison-dev -y # 下载解压 swig 4.1.1 wget https://sourceforge.net/projects/swig/files/swig/swig-4.1.1/swig-4.1.1.tar.gz/download -Oswig-4.1.1.tar.gz tar -xzf swig-4.1.1.tar.gz # 编译 cd swig-4.1.1 mkdir build && cd build cmake .. make && make install ``` #### 2. 安装 `node` ```bash curl -sL https://deb.nodesource.com/setup_18.x -o /tmp/nodesource_setup.sh bash /tmp/nodesource_setup.sh sudo apt-get install -y nodejs npm install -g node-gyp ``` #### 3. 生成 `libademco_js.node` 动态库 ```bash # cd /path/to/ademco_hb/swig node-gyp configure build # node nodejs-demo.js ``` ### macOS `./linux_mac_node.sh`