当前位置:网站首页>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 autoconf
3.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.编译安装
make
make install
至此,libmodbus库生成。
边栏推荐
猜你喜欢
关于地图GIS开发事项的一次实践整理(上)
被大厂强制毕业,两个月空窗期死背八股文,幸好上岸,不然房贷都还不上了
STM32 OLED显示屏--SPI通信知识汇总
如何解决QByteArray添加quint16双字节时错误?
数学建模学习(76):多目标线性规划模型(理想法、线性加权法、最大最小法),模型敏感性分析
【STM32】 ADC模数转换
Minecraft 1.18.1, 1.18.2 module development 23.3D animation armor production
Qt编写物联网管理平台49-设备模拟工具
直播 | 7.30 ApacheCon Asia 2022 IOT/IIOT专题,IoTDB PMC 乔嘉林担任出品人
HyperLynx中层叠设计实例
随机推荐
How to decrypt worksheet protection in Excel
斐波那契数列
redis基础入门
数据复制系统设计(3)-配置新的从节点及故障切换
Excel skills daquan
直播 | 7.30 ApacheCon Asia 2022 IOT/IIOT专题,IoTDB PMC 乔嘉林担任出品人
什么是接触电流怎么测?
Qt处理传输协议数据时QByteArray添加多字节的使用案例
Arduino框架下 ESP32看门狗使用示例
洛谷P2670扫雷游戏
A Practical Arrangement of Map GIS Development Matters (Part 1)
列表总结
洛谷P2437蜜蜂路线
micro-ros arduino esp32 ros2 笔记
轮询和长轮询的区别
违约金过高”的认定依据
Scala基础【常用方法补充、模式匹配】
8月1日“海豹数藏”将全网首发民族英雄林则徐《四行行书》数字藏品!
关于地图GIS开发事项的一次实践整理(上)
力扣 剑指 Offer 56 - I. 数组中数字出现的次数