调试记录

1, 发布失败问题

如果在本机程序运行正常,拿到别人同样系统机器上运行失败,经常因为缺一些程序运行需要的插件依赖库

2,跨平台代码,未声明的标识符错误 

qt程序在linux下正常编译过的源码拿到windows下vs编译出现 未声明的标识符错误时, 考虑文件编码错误引起的问题,看警告提示 ,将文件用nodepad++改为unicode编码

3, 野指针问题。

定义指针变量一定初始化一下,有的编译器处理方式不一样, release下 , 调试模式可能没问题,发布就出现崩溃,像途中报这样指针错误,访问冲突


4, QDebug调试。

qDebug可以像printf()函数一样使用。 像std::cout 一样用需要包含 《QDebug》头文件,release程序的时候不想输出打印信息可以在pro文件DEFINES+= QT_NO_DEBUG_OUTPUT宏,或在预处理里加上,重新编译打印信息就消失了

5, 给程序加管理员权限。

项目, 右键---属性---连接器---清单文件---uac执行级别 选择requireAdministrator 重新编译即可.

6, VS不输出.lib .exp

如果你不想输出的.exe文件夹下面还有.lib和.exp这些杂项,你可以打开: 配置属性 > 链接器 > 高级 > 导入库,在这里修改位置,例如:

$(Configuration)\$(TargetName).lib

.exp也是根据.lib的文件名来生成的。

7, warning LNK4042: 对象被多次指定,已忽略多余的指定

1)、把报LNK4042的.h和.cpp从项目中排除

2)、重新加入排除的.h和.cpp

8,warning LNkMSB8028 The intermediate directory (Debug\) contains files shared from another project (XXXX.vcxproj).  This can lead to incorrect clean and rebuild behavior

警告意思在Debug目录下 有另一个项目共享文件 这里的Debug目录是工程文件下目录(Test\Debug, 手动删除Debug文件夹  重建工程解决

猜你喜欢

转载自blog.csdn.net/liulihuo_gyh/article/details/78357128