在Liunx(ubuntu)上编译SerialPortStream基础类库的问题解决

651 阅读2分钟

说明

由于.net core 中,已经找不到 serialport 库,使用需要使用第三方框架,可以直接在 Nuget 中搜索

SerialPortStream

开源地址  github.com/jcurl/RJCP.…

怎么使用类库

SerialPortStream在 Windows 下可以正常使用,但是,在 Linux 系统下,必须为 Linux 平台编译支持库编译类库,其类库作者说明如下:

​编辑

 不然的话,项目打包到Linux时,会出现:

编辑

文章作者给出的方法是,自己在 Linux 下编译,可是很多人会在这里失败,输入命令后,无法安装 gcc 和 cmake,以及其它软件。

在这一步中,我走了很多弯路,一开始是在阿里云的Centos7系统上进行编译,老是报莫名其妙的错误,后来,直接在服务器上安装了一个ubuntu Docker容器,

附上镜像地址   Docker Hub

#拉取镜像
docker pull ubuntu

#进入容器
docker run -it -v:/home/serialstream:/home ubuntu /bin/bash

  -v:/home/serialstream:/home 
  注:这个参数的作用是为了后续将容器/home里的编译文件映射到服务器的盘符中,方便复制到本地


#进入容器后的操作
    ** 第一步:系统更新
      apt-get update

    ** 第二步:安装软件GCC C++ cmake
      apt-get install gcc g++ cmake git

    ** 第三步:
    作者的文档说明里有这么一段话:
    To build the libraries, you should have the following prerequisites installed:

    * Google Test
    * Doxygen

    # SO,不管用不用,先装上再说
    apt install libgtest-dev
    apt install doxygen

    ** 第四步:拉取源码并开始编译
    git clone https://github.com/jcurl/serialportstream.git
    cd serialportstream/dll/serialunix
    ./build.sh
    

有些朋友在安装GCC、Cmake时,出现了无法安装的问题。(我是没遇到过,比较幸运)

可以试试这个方法

编辑

  编译过后,出现类似的画面,表示已编译完成:

​编辑

 最后通过 FileZilla 连接到阿里云服务器,把编译好的这三个文件下载下来。

同时也附上FileZilla的下载地址:www.filezilla.cn/download/cl…

更方便的方法

为了避免麻烦和方便使用,我在 Linux 编译支持类库成功后,把需要的文件打包好了。

你只需在 .NET Core 项目中,把文件放进去即可,无需在 Linux 中安装 Gcc/Cmake 和后续编译。

下载链接:pan.baidu.com/s/1pLZ78EVP… 
提取码:5gni

下载这三个文件:

  •  libnserial.so 
  •  libnserial.so.1 
  •  libnserial.so.1.1

编辑

把这三个类库,发到你的项目中,随项目一起打包即可。

编辑

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持并提出宝贵意见。