我的电脑系统是Win10 64位系统开发VS2013+QT5.4.0+OpenCV2.4.9项目,下面是碰到过的问题,都是用下面方法解决的,亲测有效。
1、
warning MSB8027: Two or more files with the name of moc_Quantum_denoise_model.cpp will produce outpu
解决方法:
VC++编译源文件时默认全部输出(对象文件)到同一个目录下,遇到同名源文件覆盖前面的同名对象文件。为了解决这个问题,你可以设置输出路径与源文件路径类似。以下操作在Visual Studio 2013 (Update 3)下适用:
右键项目->属性->配置属性->C/C+±>输出文件->对象文件名,将
(
I
n
t
D
i
r
)
改
为
(IntDir)改为
(IntDir)改为(IntDir)/%(RelativeDir)/
2、
error MSB6006: “cmd.exe”已退出,代码为3
解决方法:
项目右键->Convert Project to QMake Generated Project,然后重新编译即可:
或者在QT选项里选择Convert Project to QMake Generated Project
3、
button中没有triggered()、activated()
clicked():一般指点击、按下;
triggered():QAction等的触发;
activated():一般指控件被激活(激活原因可以有很多);
toggle():
toggle在实物上有开关的意思,这跟我们物理实验用的开关是一回事,两头表示两个状态:合上和断开。于是更准确的译法应该是切换,在两个状态间进行转换。
在Qt中,checkable按纽或是图标的槽函数应该用toggled()事件来激活,也是这个道理。
4、
QT编译警告Z-order assignment: " is not a valid widget
解决方法:
编译QT程序 提示好多警告类似以下形式
Z-order assignment: “xxxxxxxx” is not a valid widget.
打开当前项目的ui文件,搜索以上名称,找到定义,删除该行。重新打开工程,警告消失
5、
QT: release时 提示“无法找到.exe的调试信息 或者调试信息不匹配 未使用调试信息生成二进制文,是否继续调试”的解决方案
解决方法:
问题在于,不生成调试文件pdb,所以无法调试。
要让项目生成pdb文件,需要更改:
configuration properties->linker->Generate Debug Info 从 no 改为 yes
configuration properties->c/c+±>debug information format为/ZI
configuration properties->c/c+±>optimization为Disabled
中文版:
项目属性->连接器->调试->生成调试信息->是(/DEBUG)
项目属性->C/C+±>常规->调试信息格式->程序数据库(/Zi)
项目属性->C/C+±>优化->优化->禁用(/Od)
6、
warning : The name ‘layoutWidget’ (QWidget) is already in use, defaulting to ‘layoutWidget2’.
解决方法:
It means that inside the .ui XML file, the element named “layoutWidget” has already been used somewhere, and the moc compiler is complaining about that, and telling you that it is changing the name to make it unique.
Open the .ui file using a text editor (not Qt Designer) and do a search for “layoutWidget”. You should find it twice. Change the name of one to something unique, and the warning will go away.
I don’t know why this happens - it is probably a bug in Qt Designer somewhere that results in a name being reused. It is harmless, but if it bothers you, find it in a text editor (or using the Qt Designer hierarchy browser) and fix it.
(将 .ui文件打开读取方式改为其他,例如:带编码的xml文件编辑器,修改里面的layoutWidget)
7、
用QT生成release版本程序发布时会出现无法定位程序输入点。。于动态链接库
QT编译发布程序后报错如缺少dll、“应用程序无法正常启动(0xc000007b)”
解决方法:
以上两种错误都是release模式exe文件添加了不是x64的DLL文件导致,
找opencv 的64位文件是在G:\OpenCV\opencv\build\x64\vc12\bin这个文件夹下找opencv_core249.dll、opencv_highgui249.dll、opencv_imgproc249.dll文件;
QT的64位文件是在G:\Qt\5.4\msvc2013_64\bin文件夹中找Qt5Core.dll、Qt5Designer.dll、Qt5Gui.dll等文件
VS的64位文件是在G:\VisualStudio2013\Common7\IDE\Remote Debugger\x64文件夹下msvcp120.dll、msvcr120.dll文件。
记住千万不能直接搜索整个盘去找文件,有很多重名的文件,如果放错了一个dll文件都会报错。
8、
编译好的exe可执行文件,在无qt环境的电脑上运行时,如下报错
This application failed to start because it could not find or load the Qt platforms plugins
解决办法:
将Qt5\5.4\msvc2013\plugins\platforms目录复制到exe所在文件夹即可,是缺少plugins文件夹下的platforms和imageformats两个文件夹内的dll,但是一定不要直接把这两个文件夹下的dll直接扔到.exe同级目录下,而是要把这两个文件夹直接扔到.exe同级目录下
9、
计算机中丢失丢失opencv_core249d.dll等 QT5core.dll等文件
解决方法:将丢失的dll文件从opencv,QT中复制到代码文件的 .exe 运行程序相同的文件夹下
10、
warning MSB8027: Two or more files with the name of moc_quantum_image_process.cpp will produce outputs to the same location. This can lead to an incorrect build result. The files involved are GeneratedFiles\Debug\moc_quantum_image_process.cpp, Generated
解决方法:右键项目->属性->配置属性->C/C+±>输出文件->对象文件名,将
(
I
n
t
D
i
r
)
改
为
(IntDir)改为
(IntDir)改为(IntDir)/%(RelativeDir)/。
设置完毕后,编译阶段输出路径将会把源文件路径考虑进去而不是只考虑源文件名
11、
fatal error C1083: 无法打开包括文件:“mclmcrrt.h”: No such file or directory
解决方法:
项目—属性—配置属性—C/C+±-常规—附加包含目录:将必需的头文件目录添加进来。
文件位置:D:\chuliruanjian\matlabr2014a\MATLAB\R2014a\extern\include
12、
vs2010中无法打开“libmat.lib
解决方法:
在项目-属性-配置-VC++目录—包含目录添加:D:\Program Files %28x86%29\MATLAB2015\extern\include
库目录添加:D:\Program Files %28x86%29\MATLAB2015\extern\lib\win64\microsoft
D:\Program Files %28x86%29\MATLAB2015\extern\lib
13、
VS2013 + Qt 提示 There’s no Qt version assigned to this project for platform 的问题
解决方法:原因在于, 没有给项目也设置Qt。 项目右键菜单, 选择 “Qt Project Settings” ,
将最后一个 Version字段, 选择指定的Qt 版本即可。
14、
计算机中丢失丢失opencv_core249d.dll等 QT5core.dll等文件
解决方法:将丢失的dll文件从opencv,QT中复制到代码文件的 .exe 运行程序相同的文件夹下