当前位置:网站首页>vs2022 编译libmodbus源码
vs2022 编译libmodbus源码
2022-08-02 04:18:00 【qq_735754647】
vs编译libmodbus-C++文档类资源-CSDN下载
项目需要用到了第三方库libmodbus,本文安装的是libmodbus3.1.7,结果如下。

方法一、vs2022编译,默认32位,64位版本需要进行一些设置,详见下文
1.libmodbus下载版本
https://github.com/stephane/libmodbus
2.src双击configure.js

出现
3.vs打开modbus-9.sln编译生成modbus.lib和modbus.dll
将平台配置成release,x64,编译

此时,会遇到如下LNK2019链接错误

解决如下图:缺少依赖库,在additional dependences添加ws2_32.lib,重新编译

出现下图错误
![]()
解决:缺少main函数,并不是可执行工程,将configuration type改为.dll,再次编译

编译成功,但会有一些inconsistent dll linkage warning,可以添加预定义


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此时,成功生成.lib 和.dll


方法二、采用qt编译生成的,64位可用。注意在.pro文件添加 LIBS += -lWS2_32
方法三、模拟linux
一、搭建MSYS环境
1.下载安装msys(在windows上模拟linux)
网址:MSYS2
2.更新pacman -Syu(pacman类似apt-get)
3.配置
参考:在windows上安装配置msys2_hustlei的博客-CSDN博客_msys2安装
3.1实现 cd +文件名进入目录:打开/etc/profile文件,添加一个关键变量:“export MSYS="winsymlinks:lnk”
3.2配置国内镜像,方便快捷下载资源:在/etc/pacman.d文件中对3个镜像文件mirrorlist文件进行修改。
3.3安装git和vim编辑器:有点像linux了, 安装命令:pacman -S git;
3.4安装配置zsh:在linux下,默认采用的是bash,但是现在大多数人都用zsh,方便快捷。安装zsh的命令:pacman -S zsh ;zsh主题采用oh-my-zsh,需要链接到相应的github网址,进行下载。
修改默认shell为zsh:在msys2_shell.cmd文件中,将LOGINSHELL的变量,改为zsh,则启动msys2后自动进入zsh
3.5选择oh-my-zsh中的主题,采用ys。采用vim编辑器在根目录下,打开zshrc文件,修改其中的ZSH_THEME的名字,完成修改。
3.6gcc的安装和环境配置:我安装的是mingw64 mingw-x86_64-gcc版本。安装命令:pacman -S mingw-w64-x86_64-gcc安装完成。
二、编译安装modbus
1.下载源码
网址:https://libmodbus.org/releases/libmodbus-3.1.7.tar.gz
或GitHub - stephane/libmodbus at v3.1.7
2. 下载如下工具或组件:autoconf,automake,m4,libtool,perl,crypt。
其中autoconf,automake是主要使用工具;m4,libtool是必要工具;perl是支撑工具;crypt是支撑库。libtool和crypt以库的形式下载。
pacman -S autoconf3.automake使用
3.1运行autoscan命令,产生configure.scan文件;
3.2将configure.scan 文件重命名为configure.in,并修改configure.in文件;
3.3运行aclocal命令,产生aclocal.m4文件;
3.4运行autoconf命令,产生configure文件;
3.5新建Makefile.am文件,新建NEWS、 README、 ChangeLog 、AUTHORS文件;
3.6修改Makefile.am,并运行automake -a命令;(automake --add-missing)
3.7运行./confiugre脚本。
3.8至此,Makefile已生产,然后执行make编译即可。
4.编译安装
makemake install

至此,libmodbus库生成。
边栏推荐
猜你喜欢

Excel如何解密工作表保护

多主复制下处理写冲突(4)-多主复制拓扑

直播 | 7.30 ApacheCon Asia 2022 IOT/IIOT专题,IoTDB PMC 乔嘉林担任出品人

Visual SLAM Lecture Fourteen - Lecture 13 Practice: Designing a SLAM system (the most detailed code debugging and running steps)

复制延迟案例(2)-读己之写

数据可视化之百变柱状图

使用 Fastai 构建食物图像分类器

【数字IC手撕代码】Verilog固定优先级仲裁器|题目|原理|设计|仿真

什么是接触电流怎么测?

UI自动化测试框架搭建——标记性能较差用例
随机推荐
W25Q16 存储器(Flash)
nr部分计算
Qt常见问题
力扣练习——40 区间和的个数
DOM系列之 click 延时解决方案
P1012 [NOIP1998 提高组] 拼数
论文速读:Homography Loss for Monocular 3D Object Detection
MySQL存储函数详解
6个月测试经验,面试跳槽狮子大开口要18K,只会点点点,给我整无语了。。
力扣练习——单词搜索
多主复制下处理写冲突(3)-收敛至一致的状态及自定义冲突解决逻辑
batch_size of deep learning foundation
【每日一题】1374. 生成每种字符都是奇数个的字符串
违约金过高”的认定依据
被大厂强制毕业,两个月空窗期死背八股文,幸好上岸,不然房贷都还不上了
力扣练习——45 二叉树的锯齿形层次遍历
什么是接触电流怎么测?
力扣练习——41 对称二叉树
alibaba数据同步组件canal的实践整理
Research Notes (6) Indoor Path Planning Method Based on Environment Perception