这里用到了Qt的网络模块,根据教程,在pro文件中添加:
QT += network
然后:
#include <QNetworkAccessManager>
这样会报错找不到,这里的做法参考:
https://blog.youkuaiyun.com/timothy93bp/article/details/77580365
实际上会报错是因为包含没写全:
#include <QtNetwork/QNetworkAccessManager>
如上面这样写就对了,但是链接的时候却会报错。比如stackoverflow的解释:
也就是用QT += network这种方式就不用从QtNetwork开始包含,而且链接器会自动链接QtNetwork模块。但是这样写了也没用是怎么回事?
很多答案都没回答qmake这个点,在项目上右键执行qmake后,直接#include <QNetworkAccessManager>就不会报错了:
qmake可以进行Makefile生成,所以修改了pro文件后需要用该操作处理,或者干脆重新构建。
最近用qt开发个小东西,然后感觉qt补齐和编辑器配色不舒服,就用vs处理了。然后写好代码用qt编译,报错无法解析的外部符号,折腾了很久。后来qmake就解决了,之前以为pro中那种模块才用qmake,不知道vs和qt的交互搞了什么事情。现在我觉得还是所有都在vs中搞更好一些,另外项目重新构建和qmake等在解决这些问题时有很好的作用。