CSerialPort教程4.3.x (6) - CSerialPort作为第三方库的使用

这篇具有很好参考价值的文章主要介绍了CSerialPort教程4.3.x (6) - CSerialPort作为第三方库的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CSerialPort教程4.3.x (6) - CSerialPort作为第三方库的使用

环境:

系统:windows 10/CentOS 7
cmake: 3.22.1

前言

CSerialPort项目是一个基于C/C++的轻量级开源跨平台串口类库,可以轻松实现跨平台多操作系统的串口读写,同时还支持C#, Java, Python, Node.js等。

CSerialPort项目的开源协议自 V3.0.0.171216 版本后采用GNU Lesser General Public License v3.0

为了让开发者更好的使用CSerialPort进行开发,特编写基于4.3.x版本的CSerialPort教程系列。

CSerialPort项目地址:

  • https://github.com/itas109/CSerialPort
  • https://gitee.com/itas109/CSerialPort

注意事项:

  • x64动态库只能用于x64的程序调用,x86同理
  • debug的动态库只能用于动态库程序调用,release同理

1. 使用cmake生成CSerialPort动态库

  • x64
  • 动态库 静态库
  • debug release
$ git clone https://github.com/itas109/CSerialPort
$ cd CSerialPort
$ mkdir bin
$ cd bin
$ cmake .. -DCMAKE_INSTALL_PREFIX=install -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=ON
$ cmake --build . --config Debug
$ cmake --install . --config Debug

CSerialPort安装目录结构:

$ tree
.
├── include
│   └── CSerialPort
│       ├── SerialPort_global.h
│       ├── SerialPort.h
│       ├── SerialPortInfo.h
│       ├── SerialPortListener.h
│       └── SerialPort_version.h
└── lib
    ├── cmake
    │   └── CSerialPort
    │       └── cserialport-config.cmake
    └── libcserialport.so

2. 以cmake方式引用CSerialPort的动态库【推荐】

注意: 
cmake方式同样可用于控制台项目、MFC项目和QT项目等。

2.1 通过find_package自动搜索CSerialPort头文件及动态库【推荐】

CMakeLists.txt

cmake_minimum_required(VERSION 2.8.12)

project(CommConsole LANGUAGES CXX)

find_package(CSerialPort)
if (CSerialPort_FOUND)
	include_directories(${CSerialPort_INCLUDE_DIR})
	add_executable( ${PROJECT_NAME} main.cpp)
	target_link_libraries (${PROJECT_NAME} ${CSerialPort_LIBRARY})
else()
	message(STATUS "Not found system CSerialPort")
endif ()

注意:
出现如下错误,可设置CMAKE_PREFIX_PATH指定搜索路径,如cmake .. -DCMAKE_PREFIX_PATH="D:/CommConsole/CSerialPort/bin/install"

Could not find a package configuration file provided by "CSerialPort" with
  any of the following names:

    CSerialPortConfig.cmake
    cserialport-config.cmake

2.2 手动指定头文件及动态库

CMakeLists.txt

cmake_minimum_required(VERSION 2.8.12)

project(CommConsole LANGUAGES CXX)

set(CSerialPortRootPath "${PROJECT_SOURCE_DIR}/CSerialPort/bin/install")
include_directories(${CSerialPortRootPath}/include)
link_directories(${CSerialPortRootPath}/lib)

add_executable(${PROJECT_NAME}
    main.cpp
)

if (WIN32)
	target_link_libraries( ${PROJECT_NAME} libcserialport)
elseif(UNIX)
	target_link_libraries( ${PROJECT_NAME} cserialport)
endif ()

注意:
CSerialPortRootPath表示CSerialPort安装目录

3. QT中使用CSerialPort的动态库

注意:
QT的cmake方式与第二节类似

CommQT.pro

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11

# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

SOURCES += \
    main.cpp \
    mainwindow.cpp

HEADERS += \
    mainwindow.h

FORMS += \
    mainwindow.ui

# add by itas109
# 1. headers
INCLUDEPATH += "$$PWD/CSerialPort/bin/install/include"

# 2. add cserialport libs
win32:LIBS += "-L$$PWD/CSerialPort/bin/install/lib"  -lcserialport
unix:LIBS += "-L$$PWD/CSerialPort/bin/install/lib" -lcserialport

# 3. define UNICODE
DEFINES += _UNICODE
# end by itas109

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

4. MFC中使用CSerialPort的动态库

注意:
MFC的cmake方式与第三节类似

4.1 添加头文件路径

右键【CommMFC根命名空间】-【属性】-【C/C++】-【常规】-【附加包含目录】-添加CSerialPort的头文件目录

D:\CommMFC\CSerialPort\bin\install\include

$(ProjectDir)\..\CSerialPort\bin\install\include

4.2 添加库文件路径

  • 添加库文件目录

右键【CommMFC根命名空间】-【属性】-【链接器】-【常规】-【附加库目录】-添加CSerialPort的库文件目录

D:\CommMFC\CSerialPort\bin\install\lib

$(ProjectDir)\..\CSerialPort\bin\install\lib
  • 添加库附加依赖项

右键【CommMFC根命名空间】-【属性】-【链接器】-【输入】-【附加依赖项】-添加libcserialport.lib


License

License under CC BY-NC-ND 4.0: 署名-非商业使用-禁止演绎


Reference:文章来源地址https://www.toymoban.com/news/detail-671872.html

  1. https://github.com/itas109/CSerialPort
  2. https://gitee.com/itas109/CSerialPort
  3. https://blog.csdn.net/itas109

到了这里,关于CSerialPort教程4.3.x (6) - CSerialPort作为第三方库的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows下qt使用第三方库(静态链接库lib)、静态库和动态库区别、动态库的使用。

    这里主要是讲述windows下qt使用第三方库。 windows下qt使用第三方库(静态链接库lib)。 为了能够使测试更准确,首先自己用qt创建了一个已经封装好的lib库。 然后让另一个项目去链接这个lib静态库,并且去调用里面的方法。 目的: 使 untitled项目 能够使用 myllplib.lib 静态库,这

    2023年04月17日
    浏览(96)
  • python学习-第三方库的引入

    目录 前言: 第三方库的三种引入方式:  1、使用pip+cmd引入第三方库  2、使用pycharm引入第三方库  3、使用轮子.whl文件进行离线安装 扩展知识-永久更改第三方库下载源         在Python语言的库中,分为Python标准库和Python的第三方库。python的标准库是随着pyhon安装的时候

    2024年02月05日
    浏览(74)
  • Android Studio引用第三方库的方式

    title: 大小端详解 date: 2023-06-06 21:01:24 comments: true #是否可评论 toc: true #是否显示文章目录 categories: #分类 - gradle - android studio tags: #标签 - gradle - android studio summary: android stduio 导入第三方库方式 这里描述的第三方库文件格式指的是 so aar so库介绍一种方法 Aar介绍两种方法 libs目录

    2024年02月08日
    浏览(58)
  • 如何去阅读开源的第三方库的源码

    2023年9月2日,周六晚上 今天探索了一天如何去阅读第三方库的源码,终有所获。 再结合以前看cereal项目的源码的经验,于是就有了这篇博客。 我个人认为: 在阅读一个开源的第三方库之前,要先学会这个第三方库的一些简单用法,然后再顺着这个学会的用法去看相关的源码

    2024年02月09日
    浏览(48)
  • pip安装python第三方库的四种方法

    pip install 库名 打开命令提示符【win + r】,输入cmd,在命令提示窗口输入pip install 库名, 再点击回车键【Enter】,就可以安装。当安装成功时,会提示successfully。例如,安装pytest库 使用该方法会存在由于网络不稳定时就无法安装成功的情况,遇到此情况时,可以多尝试几次,若

    2024年01月17日
    浏览(45)
  • Python基础 | Anaconda环境下第三方库的安装

    微信公众号推文:https://mp.weixin.qq.com/s/etFEXm6-ujK3Sg2B7gzqMg Python的标准库是随着Pyhon安装的时候默认自带的库。(类比智能手机的自带相机) Python的第三方库,需要自行安装。(类比智能手机的各种App) Python社区提供了大量的第三方库。它们无所不能,覆盖科学计算、Web开发、

    2024年02月03日
    浏览(64)
  • 查看python第三方库的安装路径并修改路径(二)之Pycharm下如何安装第三方函数库,并明确安装位置

    #第一步:学习如何利用pycharm安装第三方库 如图,打开pycharm的文件–设置。 打开python的编译器,点开+号,即可搜索并下载需要的第三方库,软件会自动默认安装在某个路径,此路径和你当初安装软件的位置有关系。 #第二步:查找第三方库的安装路径 以我为例,我的针对于

    2024年02月14日
    浏览(64)
  • Python 图像处理 PIL 第三方库详细使用教程(更新中)

    Python Pillow PIL 库的用法介绍,Pillow库是一个Python的第三方库。 要点:PIL库是一个具有强大图像处理能力的第三方库,不仅包含了丰富的像素、色彩操作功能,还可以用于图像归档和批量处理。 官方文档路径:https://pillow.readthedocs.io/en/latest/ 在 Python2 中,PIL (Python Imaging Librar

    2024年02月07日
    浏览(56)
  • 特殊符号的制作 台风 示例 使用第三方工具 Photoshop 地理信息系统空间分析实验教程 第三版

      首先这是一个含有字符的,使用arcgis自带的符号编辑器制作比较困难。所以我们准备采用Adobe Photoshop 来进行制作符号,然后直接导入符号的图片文件作为符号 我们打开ps,根据上面的图片的像素长宽比,设定合适的高度和宽度  【高度】设置为335px,【宽度】设置为283px 根

    2024年02月14日
    浏览(59)
  • 【OAuth2系列】Spring Cloud Gateway 作为OAuth2 Client接入第三方单点登录代码实践

            在年初的时候我参与了一个项目,当时是很多家公司协同完成这个项目,其中一个公司专门负责登录这块的内容,需要我们的后端接入他们的单点登录(OAuth2 授权码模式),这块接入工作是由我来负责,我们的项目是微服务架构,经过网上各种查阅资料发现网关作为

    2024年02月04日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包