前记: 在使用VS做视觉库的使用时,经常会遇到各种各样的问题,很多问题都可能会重复遇到,有些问题花好大力气搞定了,下次遇到了忘了又得重新弄。所以还是写个博客记录一下,保持好习惯。也包含一些Qt配置的问题。
反正遇到问题再不断更新上来,主要是给自己看,也提供一个参考
(一)问题1. 无法查找或打开PDB文件
就比如:“已加载“C:\Windows\System32\ntdll.dll”。无法查找或打开PDB文件
至于啥是PDB,参考王建忠老师的博客 https://blog.csdn.net/wangjianzhongfj/article/details/7339172
这个问题是相当常见了,我都不知道遇到过多少回了,这个就是VS里符号服务器加载的问题
解决方案:具体的方案如下
点击菜单里的 调试-》选项
勾选 启动源服务器支持 (默认是没有勾选的)
然后再点击下方的符号
勾选Mircrosoft符号服务器 (默认是没有勾选的)
然后重新运行一下,就会先加载符号了。
当然也可以看到还是有一些opencv的没有查找到
这些不会影响程序的直接运行结果。
(二) 无法打开ui_qtguifig2.ui
利用VS2015+QT designer5.9.6制作界面时,创建完项目有时总会出现这个提示,导致无法顺利运行。
解决方案
这种一般是没有编译成,没有注册到列表中,这个时候你会发现右键点击ui文件编译解决不了问题。
在Qt VS Tools选择卡中中选择“Convert custom build steps to Qt/MSBuild”,然后再编译XXXXX.ui,编译通过,在GeneratedFiles文件夹下,顺利生成“ui_XXXXX.h”文件,接着生成整个项目,就不会报前面提到的两个错误了。
(三) 检测到RuntimeLibrary的不匹配项,值“MTd_StaticDebug"不匹配
这个问题我也是第一次遇到,在一台新电脑上折腾时,一下出来264个错误,我只截了一部分呢
第一反应就是opencv配置出问题,但也没发现啥。
解决方案
查询了很多资料,都说是Debug的依赖项和Releas的混用了,以后类似的问题可以注意这个。
但是这个不是这个原因,我反复检查了依赖项,发现没有任何问题。注意到StaticDebug,意识到可能是静态库的问题
最后发现是库文件包含目录里,除了lib以外,还自作聪明的添加了staticslib,删除这个目录包含就没这个问题了,其实我以前在其他版本也包含过,没出过错,可能是版本文件问题。
遇到这类的问题,一定是opencv配置出了错,反复检查,参考 最新的Opencv2.4.13.6在Visual studio 2015下的配置(win7-64位)
(四) 未加载opencv_core2413.pdb
终于要说到这个烦人的问题了,当时困扰了我特别久,百度光看到问题没找到答案。
解决方案
其实当时遇到这个问题解决不了,我就觉得应该用cmake把opencv编译一下生成pdb文件,直接把整个编译好的文件拷到项目中,连路径都不用折腾。但当时cmake失败了(回头会写这个)。
后面在百度的四五页的答案中,终于有人提到了类似的,说直接把这个文件拷到项目文件下或是系统文件里,肯定能直接加载。
为了以后再出现这种问题,我直接把所有的库文件都拷到了系统目录了。x64系统的是c:/Windows:/SySWOW64,32位系统的是c:/Windows:/System32,如下图路径。拷过去之后重启电脑就可以了。也可以拷到项目文件目录里。回头还是想编译一波。
测试代码
再贴一个测试代码,用来测试一下问题
#include<opencv2\opencv.hpp>
using namespace cv;
int main()
{
Mat picture = imread("test.jpg"); //图片和test.cpp文件放在同一个文件夹下
imshow("测试程序", picture);
waitKey(0);
}
本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2015anzhuangwenti/2020/0725/4511.html