1.背景
假如想在Qt下使用OPCUA通讯,貌似大家都是倾向于使用【qtopcua】这个库。但是在Qt6之前,假如想使用这个库,还得自己编译,比较繁琐。
2.解决方案
假如想开箱即用,而且没有使用太复杂的功能的话,其实可以直接使用open62541.h、open62541.c这两个文件。
这两个文件可以从【open62541 Download】下载
然后将其加到自己的工程中来:
然后在pro文件中添加以下语句:
win32: LIBS += -lws2_32 -liphlpapi
# 这个是解决qt3d和open62541在window下报错的问题
# 本质上是#include <winsock2.h> #include <windows.h> 的问题
win32: DEFINES += WIN32_LEAN_AND_MEAN # 精简windows.h内容,跳过winsock.h
#DEFINES += UA_ENABLE_ENCRYPTION
#DEFINES += UA_ENABLE_ENCRYPTION_OPENSSL
然后就可以参考官方的例程【open62541/examples/】来进行开发了
3.高级用法
可以看我另外一篇文章:【如何对open62541.h/open62541.c的UA_Client进行状态(在线/掉线)监控】
参考:
【 Qt 5.13 编译 qtopcua 源码】
【Qt调用open62541编写opcua程序的最简单方法 】
【open62541 Download】