[开源库的使用]libModbus编译及使用

这篇具有很好参考价值的文章主要介绍了[开源库的使用]libModbus编译及使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

库介绍

libModbus下载及编译

下载

编译

1.进到libmodbus/src/win32目录中,实际路径看使用者具体情况

2.运行 configure.js,依次生成必要文件

3.使用vs2019打开 modbus-9.sln,确认升级

4.Win32下的Debug、Release可以直接编译

5.X64编译

5.1进配置管理器增加X64

5.2进入项目属性编辑器

5.2.1在配置属性=常规-配置类型中,将Debug、Release配置类型均修改为“动态库(.dll)”

5.2.2在配置属性-C/C++-预处理器-预处理器定义中,

5.2.3在配置属性-链接器-输入-附加依赖项,Debug、Release均修改为

5.2.3X64下Debug、Release分别编译即可,注意生成的文件在X64文件夹内

libModbus简单应用

1.新建Qt工程,配置属性-C/C++-附件包含目录,按实际情况添加libModbus相关头文件

2.配置属性-链接器-常规-附加库目录,按实际情况添加libModbus生成的lib

3.如果需要,可以在配置属性-生成事件-生成后事件-命令行中,添加命令,将打印信息输出到Console,方便调试Modbus

4.将modbus.dll放到项目工作目录

5.添加代码

6.验证结果


前言

本文将libModbus编译经过进行分享,介绍Windows平台下libModbus的编译及使用,基于VS2019。

库介绍

libModbus官网libmodbus。是遵循开源协议LGPL-2.1-or-later的一款开源软件。请大家自行研判使用条款及风险。

文末有编译好的.dll .lib,方便大家。压缩包解压密码:123。

libModbus下载及编译

下载

libModbus位于github,GitHub - stephane/libmodbus: A Modbus library for Linux, Mac OS, FreeBSD and Windows

可以点击链接跳转到CSDN推荐的加速站点下载

也可以直接使用命令下载:git clone https://github.com/stephane/libmodbus.git

c++ libmodbus,应用手札,c++,c语言

编译

1.进到libmodbus/src/win32目录中,实际路径看使用者具体情况

c++ libmodbus,应用手札,c++,c语言

2.运行 configure.js,依次生成必要文件

c++ libmodbus,应用手札,c++,c语言

c++ libmodbus,应用手札,c++,c语言

c++ libmodbus,应用手札,c++,c语言

c++ libmodbus,应用手札,c++,c语言

3.使用vs2019打开 modbus-9.sln,确认升级

c++ libmodbus,应用手札,c++,c语言

4.Win32下的Debug、Release可以直接编译

Debug编译结果

c++ libmodbus,应用手札,c++,c语言

Release编译结果

c++ libmodbus,应用手札,c++,c语言

5.X64编译

5.1进配置管理器增加X64

c++ libmodbus,应用手札,c++,c语言

c++ libmodbus,应用手札,c++,c语言

c++ libmodbus,应用手札,c++,c语言

c++ libmodbus,应用手札,c++,c语言

5.2进入项目属性编辑器

c++ libmodbus,应用手札,c++,c语言

5.2.1在配置属性=常规-配置类型中,将Debug、Release配置类型均修改为“动态库(.dll)”

c++ libmodbus,应用手札,c++,c语言

c++ libmodbus,应用手札,c++,c语言

5.2.2在配置属性-C/C++-预处理器-预处理器定义中,

Debug修改为

HAVE_CONFIG_H;DLLBUILD;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NONSTDC_NO_DEPRECATE=1;_WINDLL;%(PreprocessorDefinitions)

Release修改为

HAVE_CONFIG_H;DLLBUILD;_CRT_SECURE_NO_DEPRECATE=1;_CRT_NONSTDC_NO_DEPRECATE=1;_WINDLL;%(PreprocessorDefinitions);

c++ libmodbus,应用手札,c++,c语言

5.2.3在配置属性-链接器-输入-附加依赖项,Debug、Release均修改为

ws2_32.lib;%(AdditionalDependencies)

c++ libmodbus,应用手札,c++,c语言

5.2.3X64下Debug、Release分别编译即可,注意生成的文件在X64文件夹内

c++ libmodbus,应用手札,c++,c语言

c++ libmodbus,应用手札,c++,c语言

libModbus简单应用

1.新建Qt工程,配置属性-C/C++-附件包含目录,按实际情况添加libModbus相关头文件

$(ProjectDir)\libModbus\include;

c++ libmodbus,应用手札,c++,c语言

2.配置属性-链接器-常规-附加库目录,按实际情况添加libModbus生成的lib

$(ProjectDir)\libModbus\lib;

c++ libmodbus,应用手札,c++,c语言

3.如果需要,可以在配置属性-生成事件-生成后事件-命令行中,添加命令,将打印信息输出到Console,方便调试Modbus

editbin /SUBSYSTEM:CONSOLE $(OUTDIR)\$(ProjectName).exe

c++ libmodbus,应用手札,c++,c语言

4.将modbus.dll放到项目工作目录

5.添加代码

添加头文件引用

#include "modbus.h"
#pragma comment(lib, "modbus.lib")

声明变量

    modbus_t * pModbus;

往前8个寄存器写入随机数

    pModbus = modbus_new_rtu("COM8", 115200, 'N', 8, 1);
    qDebug() << modbus_set_debug(pModbus, true);
    qDebug() << modbus_rtu_set_serial_mode(pModbus, MODBUS_RTU_RS485);
    qDebug() << modbus_set_slave(pModbus, 1);
    qDebug() << modbus_set_response_timeout(pModbus, 0, 200 * 1000);
    qDebug() << modbus_connect(pModbus);
    uint16_t buffer[8] = { 0 };

    qDebug() << "generate random registers";
    for (int i = 0; i < 8; i++)
    {
        buffer[i] = rand();
        qDebug() << buffer[i];
    }

    qDebug() << modbus_write_registers(pModbus, 0, 8, buffer);
    qDebug() << modbus_read_registers(pModbus, 0, 8, buffer);

6.验证结果

c++ libmodbus,应用手札,c++,c语言

可以看到,随机生成的数据已经成功写入到对应的寄存器

编译结果

编译完成的libModbus

https://download.csdn.net/download/wuqunce/88640535

文章中开发好的简单Demo

https://download.csdn.net/download/wuqunce/88642528

使用的环境为,Qt-opensource-windows-x86-5.9.4,vs2017,qt-vsaddin-msvc2017-2.10.1-rev.2文章来源地址https://www.toymoban.com/news/detail-846188.html

到了这里,关于[开源库的使用]libModbus编译及使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • libcurl开源库的编译与使用全攻略

    libcurl 是一个广泛使用的、支持多种协议的、开源的客户端URL传输库,提供了许多用于数据传输的API,例如文件传输、FTP、HTTP、HTTPS、SMTP等。 libcurl 的主要特点包括 支持多种协议:libcurl 支持多种协议,如 HTTP、FTP、SMTP 等,方便开发者在不同的场景下使用。 易于使用:libc

    2024年02月01日
    浏览(41)
  • Libevent开源库的介绍与应用

    libevent https://libevent.org/ 一、初识 1、libevent介绍 Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD

    2024年02月14日
    浏览(37)
  • 编译xlnt开源库源码,在linux平台使用c++读写excel文件

    里面又编译说明手册 获取到xlnt-master.zip 获取到libstudxml-master.zip 1 解压xlnt-master.zip,解压命令:unzip xlnt-master.zip 2 解压libstudxml-master.zip,解压命令:unzip libstudxml-master.zip 3 将libstudxml-master/libstudxml拷贝到xlnt-master/third-party/libstudxml 注意:是这个xlnt-master/third-party/libstudxml目录下,

    2024年04月25日
    浏览(33)
  • Windows10中使用VS2022和Cmake编译构建C++开源日志库-spdlog

    Java中有很多日志库:java.util.logging、Log4j、Logback、Log4j2、slf4j、common-logging。C++的日志库相对来说就比较少了,比如说glog、log4cpp、spdllog等,目前个人感觉比较好用的C++开源日志库当属于spdlog了,跨平台,支持cmake编译,在维护中。 具体可以参考github上面的示例:https://github

    2023年04月17日
    浏览(83)
  • 【C++学习手札】模拟实现list

    ​                                                        🎬 慕斯主页 : 修仙—别有洞天                                                        ♈️ 今日夜电波 : リナリア—まるりとりゅうが                                            

    2024年02月05日
    浏览(52)
  • 【C++学习手札】模拟实现string

                                                          🎬 慕斯主页 : 修仙—别有洞天                                                        ♈️ 今日夜电波 :缶ビール—みゆな                                                          

    2024年02月04日
    浏览(83)
  • 【C++学习手札】一文带你初识C++继承

                                                                                      食用指南:本文在有C基础的情况下食用更佳                                           🍀 本文前置知识:  C++类                           

    2024年02月12日
    浏览(74)
  • 【C++学习手札】一文带你认识C++虚继承​​

                                            食用指南:本文在有C++基础的情况下食用更佳                                           🍀 本文前置知识:C++虚函数(很重要,内部剖析)                                        ♈️ 今日夜电波 : 僕

    2024年02月12日
    浏览(76)
  • 【C++学习手札】-引用与内联函数以及C++中对const拓展详解(超详细!)

                                           食用指南:本文在有C基础的情况下食用更佳                                        🔥 这就不得不推荐此专栏了:C语言                                        🍀 内联函数前置知识 :宏函数

    2024年02月14日
    浏览(49)
  • Python 反编译:pyinstxtractor工具和uncompyle6库的使用

    uncompyle6 现仅适用于 Python 2.4 到 3.8 版本 Python 3.9 及以上版本请参见我另外一篇博客: Python 反编译:pycdc工具的使用 ✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,

    2024年02月16日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包