在菜单->工程(project)->设置(settings)->c/c++ ->在category下选 ->预编译头文件(precompiled headers)->选不使用预编译头文件(Not using precompiled headers)
m_capture = cvCaptureFromFile(\"D:\\\est.avi\");
cvCaptureFromFile()此函数读取avi视频需要如下解码器: K-Lite_Codec_Pack_810_Mega.exe 链接错误:
backgroundExtractionTest.obj : error LNK2001: unresolved external symbol _cvReleaseCapture
backgroundExtractionTest.obj : error LNK2001: unresolved external symbol _cvReleaseMat
backgroundExtractionTest.obj : error LNK2001: unresolved external symbol _cvReleaseImage
backgroundExtractionTest.obj : error LNK2001: unresolved external symbol _cvDestroyWindow
这是因为没有添加依赖的库文件,将以下依赖文件添加到工程: cv.lib cxcore.lib highgui.lib cvaux.lib 添加方法:工程-->设置--->
Visual Studio 2008运行时提示找不到msvcr90d.dll的解决办法
说说微软的bug吧,昨天装Visual Studio 2008,注意:我出现这个bug的缘故是因为将Visual Studio 2008装在了FAT32分区下,当然装在这里也不是说完全有问题,但是这样装的话,就不能将项目同样放在FAT32
分区下,装好了以后,随便编了个程序,编译连接,一切OK,是在debug模式下的,但是运行的时候,却出现一些问题,截图上来给大家看看
编译和连接的时候都是正常的,惟独在运行的时候会出现这种错误,当时都无语了,具体有操作有,将MSVCR90D.dll拷到system32\\下,结果要出现了另外一个问题,截图上来给大家看看
当时都无语了,总之,以后是不要将库拷来拷去,这样解决不了根本问题,具体解决办法还有,将debug模式改为Release,然后在Release模式下可以正常的编译连接和运行.为什么会这样呢,因为release模式下,程序是不会去链接 *.dll 的库的,所以能正常工作.不过我要说的是,这不是根本原因,根本原因在于微软的bug,下面详细道来:
这个是FAT32文件系统分区的缘故,一般有如下症状;
第一次Build 的时候从不出问题,在以后重新Build 的时候,可能随机地出现问题。可能你Build间隔的时间足够长,也不会出问题。 微软也知道这个bug,但是看来没有打算完全解决它的意向,倒是在项目属性中有个选项,让你在FAT32 下也能正常工作。具体如何解决,是这样做的:
如果是把项目放在FAT32分区,那么这样操作:
英文版:Project Properties -> Manifest Tool-> Use FAT32 Work-around -->Yes
中文版:项目-->项目属性-->配置属性-->清单工具-->使用FAT32解决方法-->是
然后clean下,然后Rebuild即可正常运行,但是这样就会很麻烦,每次建个项目,都要设置它的项目属性
最好的解决办法是,将你的项目放在NTFS分区下,这样才可以正常的工作.
如果可以,提醒用户,直接将Visual Studio 2008装在你的NTFS分区下把,这样就不会有限制了,你可以将你的项目创建在任何地方了,而也不会出现上面所说的错误
在网上搜了下,解决这个问题的自己没搜到,因为微软也没任何有用的提示,所以就把它发表下,让其他的朋友也看看把,别像我一样,弄了一天才弄好,才知道症结所在,微软的这个bug,真让我郁闷,当时真想把电脑给
砸了,呵呵...
忘了补充一点:如果你安装的也是NTFS格式的文件系统分区,项目也是建在这样格式的分区里,你还要下载微软的一个补丁,在这里找这样一个补丁,给出下载地方,至此,问题就可以顺利解决了
download.microsoft.com/download/0/d/5/0d5580c0-9d8c-4873-9024-553323ab8589/WindowsXP-KB889016-x86-CHS.exe
因篇幅问题不能全部显示,请点此查看更多更全内容