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文件夹 重建工程解决