error LNK2019: 无法解析的外部符号 (VS2022创建QT文件)

发布时间 2023-08-23 12:04:33作者: 舒勤

运行过程中,编译没有问题,但是在输出会显示以下问题

 同时出现error LNK2001、2019、1120,查询网上一些资料得知是链接过程中出现错误:

属于的类型是

包含符号定义的目标文件或库未链接。

由于使用VS2022上拓展的工具QT VS Tools创建的QT文件,在使用以下两个头文件:

#include"QtNetWork/qtcpsocket.h"

#include"QtNetWork/qtcpserver.h"

在运行过程中出现上述错误。查看报错信息,发现报错中出现一些没有调用头文件的QT类型,如QIODevice等。查询#include"QtNetWork/qtcpsocket.h"、#include"QtNetWork/qtcpserver.h",发现报错中的这些类型在这两个头文件中有调用,因此也不可能是这个问题。

后面查询到时链接踹出现错误,查看用cmake实现VS+QT也出现类似的问题,解决的方法是将相应的dll、lib文件删掉出现加进去,就可以正常运行了。

在QT库中查询相应的dll、lib文件:Qt6Network.lib、Qt6Network.dll。

在VS界面中,右键点击项目名称》属性》配置属性》链接器》输入》附加依赖项,输入Qt6Network.lib。

注意:由于该项目是通过拓展创建的,因此.h、.lib、.dll文件路径已经是包含在项目中。因此只需要在附加依赖项添加Qt6Network.lib。如果路径没包含,可以参考VS如何调用dll文件。

注意:dll文件要放到项目生成的.exe文件夹中,否则可能会报错。