开源libmodbus编译为32位和64位动态库

2023-12-15 10:44

本文主要是介绍开源libmodbus编译为32位和64位动态库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

libmodbus文件介绍

libmodbus 是支持Linux,Mac OS X,window 的一个开源库,支持modbus TCP和RTU 两种模式。libmodbus的github地址为:https://github.com/stephane/libmodbus

  • docs目录 libmodbus库API接口说明文档
  • m4目录 存放GUN m4文件
  • src目录 libmodbus源代码
  • tests目录 自带的测试代码

libmodbus编译32位动态库

1、进入win32文件夹,双击src\win32\configure.js,生成一些配置文件,其中modbus-version.h被生成到上一级文件夹中。

2、用vs2019打开文件modbus-9.sln,进入vs界面。

3、查看项目头文件下的modbus-version.h文件,发现路径不存在,此时移除此文件,在项目上右键添加现有项,找到上一步生成的modbus-version.h,其路径在win32的上一级目录。

4、项目右键属性,链接器-所有版本,删除版本1.0

5、然后32位下选择debug和release模式下分别编译,编译成功后在对应的debug/release文件夹下就生成了modbus.dll和modbus.lib

libmodbus编译64位动态库

1、进入win32文件夹,双击src\win32\configure.js,生成一些配置文件,其中modbus-version.h被生成到上一级文件夹中。

2、用vs2013打开文件modbus-9.sln,进入vs界面。

3、查看项目头文件下的modbus-version.h文件,发现路径不存在,此时移除此文件,在项目上右键添加现有项,找到上一步生成的modbus-version.h,其路径在win32的上一级目录。

4、VS将编译平台修改为release-x64,重新编译

5、编译后出现LNK2019错误

编译错误

6、原因是64位缺少依赖库ws2_32.lib,在属性-链接器-输入中添加后重新编译

7、编译出现LNK1120和LNK2019错误,原因:缺少main函数,项目不能生成exe,这里修改项目属性为生成dll

8、项目右键属性-常规-配置类型,修改为(动态库.dll)后再次编译

9、编译成功,没有错误,此时会提示一些编译警告,可以添加预定义消除警告

预处理定义信息

WIN32
_DEBUG
HAVE_CONFIG_H
DLLBUILD
_CRT_SECURE_NO_DEPRECATE=1
_CRT_NONSTDC_NO_DEPRECATE=1
_WINDOWS
ENABLE_THREADS
_CONST_CORRECT_OVERLOADS
NOMINMAX
FREEGLUT_STATIC

10、重新编译后,顺利生成x64的dll和lib

这篇关于开源libmodbus编译为32位和64位动态库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/496163

相关文章

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

如何用Python绘制简易动态圣诞树

《如何用Python绘制简易动态圣诞树》这篇文章主要给大家介绍了关于如何用Python绘制简易动态圣诞树,文中讲解了如何通过编写代码来实现特定的效果,包括代码的编写技巧和效果的展示,需要的朋友可以参考... 目录代码:效果:总结 代码:import randomimport timefrom math

Java中JSON字符串反序列化(动态泛型)

《Java中JSON字符串反序列化(动态泛型)》文章讨论了在定时任务中使用反射调用目标对象时处理动态参数的问题,通过将方法参数存储为JSON字符串并进行反序列化,可以实现动态调用,然而,这种方式容易导... 需求:定时任务扫描,反射调用目标对象,但是,方法的传参不是固定的。方案一:将方法参数存成jsON字

.NET利用C#字节流动态操作Excel文件

《.NET利用C#字节流动态操作Excel文件》在.NET开发中,通过字节流动态操作Excel文件提供了一种高效且灵活的方式处理数据,本文将演示如何在.NET平台使用C#通过字节流创建,读取,编辑及保... 目录用C#创建并保存Excel工作簿为字节流用C#通过字节流直接读取Excel文件数据用C#通过字节

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

动态规划---打家劫舍

题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路: 动态规划五部曲: 1.确定dp数组及含义 dp数组是一维数组,dp[i]代表

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提