QT一些error(C1057、LNK2019、C2146、C3861)的解决

来源:互联网 发布:linux百度翻译 编辑:程序博客网 时间:2024/06/13 01:11

最近在玩QT,经常会报一些第一眼看不懂在讲啥的错误。总结了一下。


报错一:

C1057:宏扩展中遇到意外的文件结束


双击找到报错的那行,一般是括号不匹配。

看网上资料说,也可能是编码问题,可以改成UTF-8,待验证。我遇到的就是括号问题。


报错二:

LNK2019:无法解析的外部符号


如果之前已经运行过项目,然后修改了一部分东西又运行,可能代码没错,但是会报这个错误。解决方法是找到项目的目录,把生成的debug文件夹整个删掉,再运行项目,就好了。

如果还是会报这个错误,那代码就存在问题。有个可能是有需要的库没有加进去。我这个是做udp下的聊天室,项目文件(.pro文件)里需要在最后加上一句:QT+=network

然后就没问题了。我装的是QT4,听说QT5不存在这个问题,待验证。

缺什么库就补什么库名。格式是QT+=库名


报错三:(7.26更新)

C2146:缺少“)”在标识符“ui”的前面


实际上那句语法没有问题。代码是我从网上 copy的。我把报错的那行代码一模一样地重新输入,这个问题就解决了。


报错四:

C3861:“sleep”:找不到标识符


sleep函数作用是执行挂起一段时间。在linux中用gcc编译可以直接使用,g++编译需要添加头文件:

#include <unistd.h>

在 windows中,如果用VC编译器,sleep需要写为Sleep(S大写),并且添加头文件:

#include <Windows.h>
其他编译器sleep还是小写。


碰到新的继续更新。


PS:如果有什么地方说得不对欢迎评论指正^ ^ 谢谢哦~

阅读全文
2 0
原创粉丝点击