首页 > 系统相关 >MinGW GCC Windows下编译libmodbus

MinGW GCC Windows下编译libmodbus

时间:2024-07-06 15:09:11浏览次数:21  
标签:10 GCC Windows libmodbus 编译 MinGW Build

最近项目从MSVC切换到GCC,libmodbus官网没提供MinGW下GCC 如何编译,官网推荐在类UNIX环境下MSYS下编译,个人更偏向直接拿源文件编译。

编译libmodbus版本: libmodbus-3.1.10

GCC编译器版本: 5.3.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project)

CMake版本: 3.29.0

在随笔最下边提供已编译好的库文件.

1. 从Github下载3.1.10版本: https://github.com/stephane/libmodbus/tree/v3.1.10

 2. 下载完成后,解压,并创建Build目录,方便用CMake进行编译。

在Build下建立libmodbus目录,存放libmodbus源代码:

 

 3.  进入libmodbus-3.1.10\libmodbus-3.1.10\src\win32下:

执行configure.js,主要用来生成针对windows的modbus-version.h、config.h文件,在编译时会用到

 

 

 

4. 进入src下,将这些文件复制到Build\libmodbus下:

注意: modbus-version.h 头文件只有执行win32下的configure.js才会生成!

 在将win32下的config.h文件复制到build/libmodbus下,最后build/libmodbus目录,libmodbus编译所需要的所有源文件非常精简:

5. 现在直接编译会报错: undefined reference to `inet_pton‘,需要打开modbus-tcp.c,在

#if defined(_WIN32)

 上添加:

#define _WIN32_WINNT 0x0600

 6. 在Build下创建CMakeLists.txt文件

 7. 配置好MinGW环境

将MinGW\bin下的路径添加到环境变量,保证打开cmd,gcc、g++、mingw32-make可以正常执行。

在Build下打开cmd执行:

cmake -G"MinGW Makefiles" .

 执行mingw32-make:

 

 8.Build路径下得到库文件

 9. 创建include,将libmodbus下的所有头文件(.h)复制到include中:

 

 最后已把编译好的库文件放到了蓝奏云中,因为GCC编译器各种版本,如果有时间推荐自行编译。编译很简单。

https://wwp.lanzoue.com/iLgNd23o6erc
密码:2jwb

 

参考: https://blog.csdn.net/m0_48388579/article/details/132554634   QT使用部分

参考: https://blog.51cto.com/u_15950551/7407812   undefined reference to `inet_pton报错问题

 

标签:10,GCC,Windows,libmodbus,编译,MinGW,Build
From: https://www.cnblogs.com/GengMingYan/p/18287227

相关文章

  • 在 Windows 中,你可以通过修改注册表来调整系统对于同时打开 SYN 半连接数目的限制。这
    在Windows中,你可以通过修改注册表来调整系统对于同时打开SYN半连接数目的限制。这个限制通常被用来防范SYN攻击,但有时候需要根据特定的网络环境和需求进行调整。以下是在注册表中修改SYN半连接数目限制的步骤:打开注册表编辑器:按下Win+R组合键打开运行窗口。......
  • 在 Windows 操作系统中,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tc
    在Windows操作系统中,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters下的两个重要参数控制着TCP/IP协议栈的行为。这些参数可以通过注册表来配置,影响网络连接和端口资源的管理。1.MaxUserPort路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSe......
  • windows下,用PowerShell安装fnm,并安装Node.js步骤
    1#installsfnm(FastNodeManager)/安装fnm2wingetinstallSchniz.fnm3#重新开启powershell4#!不确定是否需要此步骤!5$profile6#!不确定是否需要此步骤!按照上面的输出,创建缺失的文件夹7#创建$profile文件:粘贴到powershell后,按回车8if(!(Test-P......
  • 将jar可执行文件打包为windows安装包体
    当我们希望将java编写的可执行文件.jar打包为一个.exe供用户直接使用,我们需要将jre/jdk也打包到exe中,这样用户环境就不需要安装jdk,直接运行我们做好的exe文件。整个过程分为两步,为了方便演示,这里使用JMonkeyEngineSDK打包一个jme3游戏的方式来解释。工具首先下载这里的工具:链......
  • FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt
    ​《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有比较两种比较新的流媒体协议,分别是SRT和RIST。其中SRT全称为SecureReliableTransport,中文叫做安全可靠传输协议。RIST全称为Reliable......
  • 2.7 在Windows系统下载、安装、汉化、配置搭建PyCharm集成开发环境(IDE)——《跟老吕学P
    2.7在Windows系统下载、安装、汉化、配置搭建PyCharm集成开发环境(IDE)——《跟老吕学Python》在Windows系统下载、安装、汉化、配置搭建PyCharm集成开发环境(IDE)一、PyCharm系统要求二、下载PyCharm1.访问PyCharm官网2.转入PyCharm主页3.选择版本4.转入版本下载页面......
  • Windows传统DOS路径有效性检测(资源篇)
    需求    本篇旨在探索Windows传统DOS路径有效性检测的一种可行方案,实际上许多Windows文件IO相关的API也同样可以作为一种方案,为了锻炼一下我们的思考和解决问题的能力,所以我们需要另辟蹊径。本篇将通过有限自动机来验证路径有效性,仅记录资源,具体的实现原理将在后续篇......
  • windows10小工具脚本
    npm环境搭建nvminstall16.14.0nvmuse16.14.0npminstall-gnrm--registry=https://registry.npmmirror.comnrmusetaobaonpmi-ganywherepnpm@8lessnvm-vwin10右键cmd.regWindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Dire......
  • modifing windows color from registry
    WindowsRegistryEditorVersion5.00[HKEY_CURRENT_USER\ControlPanel\Colors]"ActiveBorder"="180180180""ActiveTitle"="153180209""AppWorkspace"="171171171""Background"="......
  • C#开发一个混合Windows服务和Windows窗体的程序
    很多时候,我们希望服务程序可以直接运行,或者可以响应一些参数,这时候,混合Windows服务和Windows窗体的程序就排上用场了。要实现同时支持Windows服务和Windows窗体,需要在启动的第一步时判断当前运行环境是否为服务模式,可以从以下几个方面进行判断:当前用户名称:Environment.UserName,......