serial库安装教程

Serial库安装教程

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

前言

折腾了几个小时,过程中发现网上关于它安装与使用的资料并不多,为了后面有人再用这个库的时候不再浪费过多时间,暂且地写下了这篇教程。这篇教程适合有计算机基础的开发者参考。
教程仅供参考,出现问题请在评论中提出。
相比使用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)

  • 16
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值