(1)代码是从网上下载的关于书上的代码,正确性应该是没问题的,当我采用cmake进行配置,然后运行其中一个项目时候,出现了下面的错误:(opencv error : asseration failed)
出现原因:我的所有vs中关于opencv的配置都是这样操作的:(包含目录的配置有问题)
点击下拉按钮,选择编辑,然后将路径复制进去,点击确定。
解决方案:点击下拉按钮,选择编辑,选择路径,点击确定,最后点击应用按钮就可以了。
(2) link :fatal error link1104:无法打开文件“kernel32.lib”
解决方法:项目-》VC++目录——》库目录添加一个
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib就可以了
(3) 添加外部附加依赖项方法
项目——》属性——》c/c++——》附加包含目录
项目——》属性——》链接器——》常规——》附加库目录
(4) error C3861:“snprintf”:找不到标识符
snprintf()函数的格式跟printf差不多一样,是在c里面用的函数,包含在 #include <stdio.h>头文件中。
但snprintf()函数并不是标准c/c++中规定的函数,所以在许多编译器中,厂商提供了其相应的实现的版本。在gcc中,该函数名称就snprintf(),而在VS中称为_snprintf。 所以在需要使用snprintf()时改成_snprintf就可以了,或则在预编译处加入:
#if _MSC_VER
#define snprintf _snprintf
#endif
解决方案:
写成sprintf_s就可以了。
(5)fatal error C1083:无法打开包括文件:“windows.h”: No such file ordirectory
因为 #include 后面的包含的文件时,如果使用的是"<>" 尖括号的话, 表示让编译器在系统头文件夹中查找对应名字的头文件, 当使用""""引号时,就是让编译器在当前程序目录下查找对应名字的头文件,如果没有找到,则编译器会再在系统头文件夹中查找该头文件. 所以,这里,你应该把 #include<class.h> 改为 #include"class.h" 还有, 你上面的程序的写法是不标准的,(但是能通过许多编译器) 应该这么写 #include <iostream> // 注意,标准中,系统头文件不推荐加 .h,类似地有 <cmath> 而不是 <math.h>。
上面的看看就好,解决方法如下:
可以试试在 INCLUDE 目录增加:$(WindowsSDK_IncludePath)
在 LIB 目录增加:$(WindowsSDK_LibraryPath_x86)
按照这样操作后,就没有问题了。