首先,下载 libmodbus
源代码
git clone https://github.com/stephane/libmodbus.git
依次进入文件夹:libmodbus ==> src ==> win32
这里有个 README.win32 文件,用记事本打开,可以看到一些重要提示
Intro
-----
This directory contains the project file for Visual Studio 2008 to build
modbus.dll and the import library modbus.lib.
The project file looks for D:/include/msvc_std to find stdint.h.
See ../../README.md file.
config.h and ../modbus-version.h are generated using configure.js.
Run
cscript configure.js
or
wscript configure.js
or
double click configure.js to generate these files.
To get project file for Visual Studio 2005 open copy of file modbus.vcproj in
editor and change attribute `Version` of `VisualStudioProject` tag to "8,00".
也就是我们先要用到 configure.js 生成一些头文件
接下来,直接双击打开 modbus-9.sln,如果提示升级平台工具集的可以升级到你现在使用的版本,在这里我用的是 Visual Studio 2017 (v141),选择 Release Win32 (也可以尝试 X64,不过我的代码需要的是 32 位版本的,就没有尝试 64 位的了)
在解决方案资源管理器中,右键 modbus 选择属性,依次选择配置属性->链接器->常规,确保这里的版本处没有任何内容(如果原先有就删除),注意是对 Release 的配置进行修改,我编译的对象是 Release 版本,但是一直修改的是 Debug 的配置,半天没找到错误在哪
最后直接生成即可,如果生成过程中提示还缺失一些文件如 stdint.h,一般是可以从本地电脑上搜索到或者从网上下载到的
生成成功后,在 win32 文件夹下面就得到了我们需要的头文件和库:
src
|- modbus.h
|- modbus-private.h
|- modbus-...
|- win32
|- modbus.lib
|- modbus.dll
比较幸运的是通过 VS2017 编译的 libmodbus 库也可以在 VS2013 下使用