关于编译错误整理

包含头文件顺序:

系统头文件
第三方头文件【你使用了别人的头文件】
项目中创建的的头文件

Part1:
error C4996 use _CRT_SECURE_NO_WARNINGS
处理方法:预处理器定义
属性-》c+±》预处理器-》预处理器定义-》编辑-》加入你所需要的预处理的内容

Part2:
error C4430;缺少类型说明符
[1] 原因:如果存在两个类的头文件apple.h和boy.h,在apple.h中包含了boy类的头文件(即apple.h中存在 #include“boy.h”);而在boy.h中又存在#include“apple.h”,且这两个类中的某一个类又使用了另一个类的对象。
[2] 没有包含要定义的头文件。

Part3:
error LINK 2019

除了考虑网上说的一些解决方法,还要考虑如果xx.h头文件中有模板,谨记 C++编译器不支持模板分离模型,需要将模板的实现与定义放在一个头文件中。

LNK 2019 无法解析的外部符号,该符号在函数。。。中被引用
【1、 头文件互相包含
【2、 没有入口main函数
【3、 头文件包含重复】

Part4:
error LNk1104:无法打开….exe的错误
解决方案
[1] 你所需要添加的库文件是否添加成功
[2] 删除已经生成的Debug文件,重新生成,一般不能删除
[3] 打开任务管理器,查看…exe是否被占用,如果占用,立即结束、
[4] 如果以上都不行的话,关闭杀毒软件,重新调试

Part5:
Qt中,0xC0000005;读取位置0xCDCDCDD1时发生冲突
这种情况多数是指针的问题,考虑一下指针有没有初始化 或者指针delete后 有没有赋值为NULL

读取位置。。。发生冲突
给数组分配了比小的内存空间
句柄或指针子在使用前被释放

Part6:
error LNK2005 已经在xxx.obj中定义
项目–属性 —连接器—命令行 输入: /FORCE:MULTIPLE

Part7:
error C3861 “xxx”找不到标识符
【没有包含该函数所属模块的头文件,添加需要的头文件即可】

Part8:
LNK 1168 无法打开的xx.exe进行写入
【将任务管理器中之前生成的exe,关闭即可】

Part9:

对于无法读取内存

1、考虑有没有为变量分配内存。指针类型有没有new、int类型有没有初始化(对于int类型的变量,为其初始化,系统就会为其分配相应的内存空间)
2、有时候会出现,从一个线程a调到另一个线程b,线程b根本没有使用到其构造函数,所以b中的成员就没有初始化,故没有分配内存空间。(解决方法:在a线程中定义了b的对象。g_pReceiverReactor = new ReceiverReactor;)

Part10:
char类型的数组什么时候等价于string类型呢?
char分配的内存填满,同时最后一个字符为结束符

Part11:
由于找不到msvcr100d.dll
这种错误一般是编译器的错误,可以在Debug文件中拷贝一些东西
C:\Windows\System32

Part12:
远程连接连接不上

除了常规问题,还有可能没有为主机分配ip地址。将主机连接上显示器,计算机属性设置一下配置IP地址,还有用户名。

你可能感兴趣的:(编译错误)