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)
作者:tikris