VS(Visual Studio 2012)编译生成OpenCV-64位程序时提示:无法打开包括文件:“opencv2/core/core.hpp”

Posted 昊虹图像算法

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS(Visual Studio 2012)编译生成OpenCV-64位程序时提示:无法打开包括文件:“opencv2/core/core.hpp”相关的知识,希望对你有一定的参考价值。

随着计算机技术的发展,64位的程序越来越多。
我们在用OpenCV开发图像处理程序时也应顺流潮流,将程序编译成64位的。
OpenCV为我们用CMake编译好的build文件中,也提供了64位的bin、lib和staticlib文件,如下面的截图所示:

所以我们可以尝试将我们的OpenCV程序成生64位的程序。

VS新建的解决方案(项目)是32位的,要想将其改成64位,需要在解决方案新建成功后,在解决方案中设置。

下面的截图记录了从新建解决方案到设置生成64位程序的过程:


从上面的截图中我们可以看出,VS在新建项目时是没有64位程序的相关选项的,我们只有在新建好这个解决方案后才能进行生成64位程序的相关设置。
)
点击上图的完成之后的界面如下:

接下来我们来配置用VS生成64位程序。




据说,这样配置之后便可以用VS生成64位的exe程序了。
我们看下是不是这样。
为了生成OpenCV编写的图像处理程序,我们还需要配置include路径、库文件路径和链接器的输入附加依赖项,如下图所示:

包含目录:
E:\\Program Files\\OpenCV3.0\\build\\include
E:\\Program Files\\OpenCV3.0\\build\\include\\opencv
E:\\Program Files\\OpenCV3.0\\build\\include\\opencv2

库目录:
E:\\Program Files\\OpenCV3.0\\build\\x64\\vc11\\lib
从这个路径可以看出,我用的是64位的库了。

链接器的输入附加依赖项:
opencv_ts300d.lib
opencv_world300d.lib

配置好之后我们把以下的测试代码复制粘帖到解决方案中:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgcodecs/imgcodecs.hpp>
#include <opencv2/imgproc/imgproc.hpp>


int main()  
  
    // 读取源图像并转化为灰度图像    
    cv::Mat srcImage = cv::imread("flower.jpg");  
    // 判断文件是否读入正确    
    if (!srcImage.data)  
        return 1;  
    // 图像显示    
    cv::imshow("srcImage", srcImage);  
    // 等待键盘键入    
    cv::waitKey(0);  
    return 0;  


然后按F7编译,就出现了标题中的问题:

1>V-001-03.cpp(1): fatal error C1083: 无法打开包括文件:“opencv2/core/core.hpp”: No such file or directory

难道自己的配置没有保存?检测一下,截图如下:

可见是生效了的~
难道是“E:\\Program Files\\OpenCV3.0\\build\\include\\opencv2\\core\\”下不存在文件“core.hpp”?

可见是存在的。

我们按切换到32位平台上,并配置好include路径、库文件路径和链接器的输入附加依赖项,如下图所示:


再按F7编译,没有问题,如下图所示:

然后博主就不知道怎么解决“VS(Visual Studio 2012)编译生成OpenCV-64位程序时提示:无法打开包括文件:“opencv2/core/core.hpp””这个问题了…

有知道原因的朋友可以在这篇博文下方留言,也可以给我私信,也可以加我微信/QQ 2487872782,博主有偿收解决办法。

以上是关于VS(Visual Studio 2012)编译生成OpenCV-64位程序时提示:无法打开包括文件:“opencv2/core/core.hpp”的主要内容,如果未能解决你的问题,请参考以下文章

如何在Visual Studio和CodeBlocks中反编译C++代码

在 VS 2012 (C++) 中编译 Visual Studio 2010 项目:错误 LNK2038:检测到“_MSC_VER”不匹配:值“1600”与值“1700”不匹配

Visual Studio 在转换为 2013 的项目上使用较旧的 2012 编译器

使用 Visual Studio 2012 的编译器为 Windows XP 制作 Qt 应用程序

VS(Visual Studio 2012)编译生成OpenCV-64位程序时提示:无法打开包括文件:“opencv2/core/core.hpp”

无法在 Visual Studio 2012 中编译 TypeScript 文件