GitHub下载libmodbus源码:https://github.com/stephane/libmodbus
下载解压后,进入解压目录, 进入 \libmodbus-master\src\ 文件夹,打开win32 文件夹,可以看一下README文件,文件中有生成config.h,…/modbus-version.h文件方法。
一定要先生成这两个文件后,再打开modbus-9.sln解决方案进行编译,不然会报一堆错。
具体操作如下:
1.清空地址栏后,在地址栏输入cmd,回车,进入命令行模式;
2:输入命令 cscript configure.js 或者 输入命令wscript configure.js,回车,就可以生成 config.h,…/modbus-version.h文件了。
生成这两个文件后,就可以打开 modbus-9.sln 进行编译了。
编译出来的结果:
LINK : fatal error LNK1117: 选项“VERSION:1.0.0”中的语法错误
编译 x64的时候 从win32自动复制设置
vc++碰到的编译记录
//#include <unistd.h> 这个是unix的头文件 可以用下面的替换
#ifndef _UNISTD_H
#define _UNISTD_H
#include <io.h>
#include <process.h>
#endif /* _UNISTD_H */
#if defined(_WIN32)
#include <ws2tcpip.h>
#pragma comment(lib,"ws2_32.lib")//windows socket 把这个lib加上
#else
#include <sys/select.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#endif
close(master_socket);
可以用 _close
//报错:‘inet_ntoa’: Use inet_ntop() or InetNtop() instead or define _WINSOCK_DEPRECATED_NO_WARNIN
#pragma warning(disable:4996)