SerialPortStream是一个跨平台的串口类库,可以运行在Windows和Linux系统上。直接将其部署在Linux上会抛出DllNotFoundException异常,其内容为“Unable to load shared library 'libnserial.so.1' or one of its dependencies.”。这是因为SerialPortStream需要在Linux系统中使用CMake单独编译libnserial.so,而且使用不同的Linux系统需要分别编译该依赖库。
本文使用Linux环境为:Raspbian GNU/Linux 10 (buster)。
1、安装CMake
如果已经安装CMake则跳过该步骤。
sudo apt update sudo apt install -y cmake cmake –version
2、编译libnserial.so
git clone https://github.com/jcurl/RJCP.DLL.SerialPortStream cd SerialPortStream/dll/serialunix/ cmake . && make && make install
如果目标Linux系统中没有安装Git,也可以在Windows中将RJCP.DLL.SerialPortStream克隆下来后拷贝到Linux系统中。编译好串口依赖库后,生成的.so文件在目录/usr/local/lib/中。
最后,将生成的libnserial.so.1拷贝到目标程序所在文件夹中,重新运行就可以了。