Serial库安装指南:详细教程

Serial库安装教程

Serial库是适用于RS-232设备的串口通信库,支持异步通信,并且使用很宽松的开源协议。

文章目录

  • Serial库安装教程
  • 前言
  • 本文章的修改提示
  • 环境
  • 下载与解压
  • 修改cmakelist.txt
  • 在MinGW中编译
  • 安装
  • 在Visual Studio中编译
  • 使用时的配置
  • 文档
  • 前言

    折腾了几个小时,过程中发现网上关于它安装与使用的资料并不多,为了后面有人再用这个库的时候不再浪费过多时间,暂且地写下了这篇教程。这篇教程适合有计算机基础的开发者参考。
    教程仅供参考,出现问题请在评论中提出。
    相比使用MinGW的方式,使用MSVC进行编译的过程更加简单,并且对于各种库的编译来说也更加稳定。

    本文章的修改提示

    2024/8/3: 修改关于编译的部分,.a是Linux静态链接库,如果只使用MinGW就需要一些比较繁琐的操作才能转换为Windows环境下使用的lib静态链接库。但我们可以用其他方法直接生成Windows环境下可用的文件,详见编译部分。

    环境

    笔者用的是Windows11系统,需要先安装MinGW以使用make指令(也可用其他支持make指令的,当然我这里用的是MinGW),这里建议安装MSYS2来安装工具链并配置好环境变量(path)。除此之外,还需要安装cmake,也需要配置环境变量(path)。

    在使用MSYS2安装完MinGW后,找到mingw32-make.exe(如果在mingw64\bin、mingw32\bin里找不到的话,可以在ucrt64\bin里找找,可能下载到了这些文件夹里),可以把这个可执行文件改名或复制一份再改名为make.exe方便使用。

    此外,还需要将MinGW的reimp工具添加到path中

    最后可以在命令行中执行make –version和cmake –version看自己是否配置成功。

    下载与解压

    在GitHub – wjwwood/serial:跨平台,用 C++ 编写的串口库中下载zip文件,解压到一个新建的文件夹中(路径最好是英文,没有其他要求,只要有空间、不邪门就行)

    修改cmakelist.txt

    因为一般来说我们并不需要使用catkin(是ROS的一部分,如果要使用ROS进行一些功能的实现的话就不用改了,但一定要安装ROS),而原版的cmakelist.txt是有查找catkin库的语句的,所以在没有catkin的电脑上运行cmake指令会报错。

    于是我们可以删掉或注释(用# 注释)cmakelist.txt中的这些部分:

    find_package(catkin REQUIRED COMPONENTS ...)
    
    catkin_package(
      INCLUDE_DIRS include
      LIBRARIES ${PROJECT_NAME}
      CATKIN_DEPENDS ...
      DEPENDS system_lib
    )
    
    include_directories(
      ${catkin_INCLUDE_DIRS}
    )
    
    target_link_libraries(${PROJECT_NAME}
      ${catkin_LIBRARIES}
    )
    

    在MinGW中编译

    在这个文件夹中新建一个名称为build的子文件夹。用管理员身份打开控制台。

    把目录切换到build文件夹下,比如我的是F:\serialtemp\build

    注意,因为cmake、make指令与Windows的兼容性问题会导致在调用cmake指令时,build文件夹中生成时会默认生成Visual Studio的.sln文件而不是Makefile,这样会导致make指令报错(当然也可以不使用下列指令,直接打开sln文件,在visual studio中编译)。所以首先要输入并执行

    cmake -G "MinGW Makefiles" -DCMAKE_GNUtoMS:BOOL=ON ..
    

    将会在build文件夹下生成一大堆文件,里面有Makefile就说明对了。
    前半部分的"MinGW Makefiles"是设置在Windows环境下生成Makefiles文件,后半部分的-DCMAKE_GNUtoMS:BOOL=ON是设置在GNU下生成的.a库转换为Windows下能够使用的.lib库

    再输入并执行

    make
    

    安装

    在命令行中输入并执行

    make install
    

    这一步需要使用管理员权限,因为它将会在program file(x86)里生成serial文件夹,里面的\lib文件夹有后缀为.a的Linux静态链接库文件(libserial.a)。再将原来serialtemp文件夹中新出现的两个头文件serial.h和v8stdint.h复制到\serial文件夹。

    建议将此文件夹移出program file(x86)到合适的位置,因为移出后再修改的时候就不需要管理员权限了。

    完成后原来的文件夹就可以删掉了。

    但是,使用MinGW进行编译的操作对于某些库来说(比如OpenCV)可能会出现无法使用在VS项目中的情况。

    在Visual Studio中编译

    打开在直接运行cmake时生成的.sln文件,选中serial项目,在release下进行生成。

    之后就可以在build文件夹下的release文件夹找到serial.lib了
    同样,把自己需要的拿走后原来的文件夹就可以删掉了。

    使用时的配置

    以visual studio中的使用为例。

    展开“配置属性” -> “VC++ 目录”。

    在“包含目录”中,添加 serial 库的头文件所在的路径。也可以把这些头文件放在visual studio的头文件路径下

    在“库目录”中,添加libserial.a文件所在的路径。

    展开“配置属性” -> “链接器” -> “常规”。

    在“附加库目录”中,添加libserial.a文件所在的路径。

    展开“链接器” -> “输入”。

    在“附加依赖项”中,添加libserial.a。

    之后就可以使用serial库实现串口通信的功能了。

    文档

    serial: 数据结构 (wjwwood.io)

    作者:tikris

    物联沃分享整理
    物联沃-IOTWORD物联网 » Serial库安装指南:详细教程

    发表回复