fatal error: opencv2/opencv.hpp: No such file or directory | 报错解析 | 解决方法


cmake… make 执行遇到如下报错


CMakeLists.txt 中 OpenCV find_package 设置

set(OpenCV_DIR /home/Moli/project/project21Next/seven/opencv-3.4.13/build)
find_package(OpenCV REQUIRED)

遇到报错

 fatal error: opencv2/opencv.hpp: No such file or directory

报错解析


find_package 方法会根据 OpenCV_DIR 找到我们的 OpenCV build 路径,找到相关 lib 和 头文件
如果找不到,则会提示 报错

  • 本博文所遇到报错是因为,find_package 虽然找到 OpenCV ,但是 OpenCV_LIBS 变量没有和目标程序建立链接,因此在 CMakeLists.txt 设置如下 即可:
# 头文件 路径的添加
include_directories(${OpenCV_INCLUDE_DIRS})

target_link_libraries(目标程序名 PRIVATE ${OpenCV_LIBS})

解决方法


blurJudge.cpp 是我的 main 方法程序
CMakeLists.txt 配置如下,可成功编译和运行

# cmake needs this line
cmake_minimum_required(VERSION 3.1)

# Define project name
project(blurJudge_project)

# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
#set(OpenCV_DIR /home/moli/usr/local)

set(OpenCV_DIR /build/ownOppenCV/opencv-3.4.13/build)
find_package(OpenCV REQUIRED)

# If the package has been found, several variables will
# be set, you can find the full list with descriptions
# in the OpenCVConfig.cmake file.
# Print some message showing some of them
# 打印 OpenCV 相关变量信息
message(STATUS "OpenCV library status:")
message(STATUS "    config: ${OpenCV_DIR}")
message(STATUS "    version: ${OpenCV_VERSION}")
message(STATUS "    libraries: ${OpenCV_LIBS}")
message(STATUS "    include path: ${OpenCV_INCLUDE_DIRS}")

# Declare the executable target built from your sources
add_executable(blurJudge blurJudge.cpp)

# 头文件 路径的添加
include_directories(${OpenCV_INCLUDE_DIRS})

# Link your application with OpenCV libraries
target_link_libraries(blurJudge PRIVATE ${OpenCV_LIBS})


额外的私有库链接-添加方式


    if(BUILD_MYLIB)
		target_link_libraries(${目标程序名} ${MYLIB_NAME} pthread -fopenmp ${OpenCV_LIBS})
    endif()

9-9


### 回答1: 这个错误提示是说找不到opencv2/opencv.hpp这个文件或目录。可能是因为你的编译环境没有正确配置或者缺少了相关的库文件。你可以检查一下你的编译环境是否正确配置了OpenCV库,并且确认你的代码中是否正确引用了相关的头文件。 ### 回答2: Opencv2/opencv.hpp: no such file or directory是一个C++编译错误。这个错误通常意味着编译器在你的代码中找不到所需的头文件。 Opencv是一个广泛的开源计算机视觉库,用于处理图像和视频。在使用它时,你需要在代码中包含相应的头文件。Opencv2/opencv.hpp是一个特殊的头文件,在使用其中的函数时必须包含它。如果编译器在编译时无法找到这个头文件,就会出现Opencv2/opencv.hpp: no such file or directory的错误。 为了解决这个问题,你需要确保代码中正确地包含这个头文件。这可以通过在代码开头添加#include <opencv2/opencv.hpp>来实现。如果你的代码已经包含了这个头文件,那么可能是你的编译器无法找到它。在这种情况下,你需要确保你的编译器正确地配置了Opencv库。你可以在编译器设置属性中添加正确的Opencv库路径来解决这个问题。 除了这个头文件错误,还有其他一些与Opencv有关的错误,例如链接错误或未定义的符号错误等。这些错误通常是由于缺少库文件或无法正确链接库文件造成的。为了解决这些问题,你需要正确地安装Opencv库,并在编译时正确地链接库文件。 总之,Opencv2/opencv.hpp: no such file or directory是一个常见的编译错误,可以通过正确包含头文件和正确配置库文件来解决。如果仍然无法解决问题,你可以在网上搜索相关的资料,或向Opencv的社区提问以获得更多帮助。 ### 回答3: OpenCV是一个流行的计算机视觉库,提供了许多用于图像处理和计算机视觉算法的函数和工具。当您在编写使用OpenCV的C++代码时,您需要包含OpenCV的头文件。其中最常用的头文件是“opencv2/opencv.hpp”。 如果您在编译使用OpenCV的代码时遇到“opencv2/opencv.hpp: no such file or directory”的错误,意味着编译器无法找到OpenCV的头文件。这可能是因为未正确安装OpenCV库或未正确设置库路径。 在Ubuntu系统中,可以使用以下命令来安装OpenCV: sudo apt-get install libopencv-dev 然后设置OpenCV库路径,例如: export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/local/lib/pkgconfig 在Windows系统中,您需要下载OpenCV的二进制版本并将其添加到Visual Studio的头文件和库目录中。 如果您已正确安装OpenCV库并设置了库路径,但仍出现错误,请确保文件的路径正确。也许您将文件放在了错误的位置或文件名没有正确拼写。在代码中使用相对路径时,请确保您在正确的目录中。 最后,如果您的编译器仍无法找到OpenCV的头文件,您可以在代码中使用绝对路径来包括头文件。为此,请在包括路径中使用完整的路径,例如: #include "/usr/local/include/opencv2/opencv.hpp" 总之,当您遇到“opencv2/opencv.hpp: no such file or directory”错误时,您需要确保正确安装了OpenCV库并设置了库路径。如果文件路径或文件名不正确,请进行检查。另外,还可以使用绝对路径来解决问题。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨理学AI

不必打赏,关注博主公众号即可

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值