OPC UA编译报错之无法解析的外部符号报错解决方法

为了使用opc ua通信,用到了open62541这个库。以前科室有人用该库做过opc通信,不过当时用mfc做界面,现在需要将代码改为qt的,在代码迁移过程中出现了各种各样的bug,最终出现了“无法解析的外部符号”的报错,下面记录下填坑过程。

符号无法解析意味着编译器知道有这个符号存在,也就是有声明,但在链接时,找不到实现代码。在这里插入图片描述
找到对应的无法解析外部符号
在这里插入图片描述
在.h文件中找到函数声明的地方,发现其下面有波浪线提示没有找到函数定义
在这里插入图片描述
然而,在对应的c文件中,是能找到其函数定义的。因此,现在遇到的问题可以总结为:头文件找不到其对应的.c文件。在这里插入图片描述
解决方法:在vs中,项目右键,将用到的实现文件.c添加进来(头文件不用添加)。

上面的问题解决后,又出现了新的问题——用到的open62541.h出了问题,但是在代码中没有发现报错中提到的带有“__”前缀的符号,最后通过添加#pragma comment(lib, “Ws2_32.lib”)解决了该报错。自此,程序终于能够跑通了,呜呜~
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值