C++ 致命错误:opencv2/opencv_modules.hpp:没有这样的文件或目录“include”;opencv2/opencv_modules.hpp“;
大家好,我正在尝试使用我从源代码构建的opencv-c++API(版本4.4.0)。它安装在/usr/local/中,我只是尝试使用以下代码加载和显示图像-C++ 致命错误:opencv2/opencv_modules.hpp:没有这样的文件或目录“include”;opencv2/opencv_modules.hpp“;,c++,opencv,opencv4,C++,Opencv,Opencv4,大家好,我正在尝试使用我从源代码构建的opencv-c++API(版本4.4.0)。它安装在/usr/local/中,我只是尝试使用以下代码加载和显示图像- #include <iostream> #include <opencv4/opencv2/opencv.hpp> #include <opencv4/opencv2/core.hpp> #include <opencv4/opencv2/imgcodecs.hpp> #include <
#include <iostream>
#include <opencv4/opencv2/opencv.hpp>
#include <opencv4/opencv2/core.hpp>
#include <opencv4/opencv2/imgcodecs.hpp>
#include <opencv4/opencv2/highgui.hpp>
#include <opencv4/opencv2/core/cuda.hpp>
using namespace cv;
int main()
{
std::string image_path = "13.jpg";
cv::Mat img = cv::imreadmulti(image_path, IMREAD_COLOR);
if(img.empty())
{
std::cout<<"COULD NOT READ IMAGE"<<std::endl;
return 1;
}
imshow("Display Window", img);
return 0;
}
我的简历如下-
cmake_minimum_required(VERSION 3.15)
project(opencvTest)
set(CMAKE_CXX_STANDARD 17)
include_directories("/usr/local/include/opencv4/opencv2/")
add_executable(opencvTest main.cpp)
target_link_libraries(opencvTest PUBLIC "/usr/local/lib/")
我不知道我在这里做错了什么。。这可能是一个很难回答的问题,但我刚刚开始在C++中使用opencv。解决方案是只包含目录路径,直到
/usr/local/opencv4
,它工作得非常好
但是,我认为最好的方法是使用find\u包
功能。我将我的Cmake更新为以下内容,它负责构建期间的链接
cmake_minimum_required(VERSION 3.15)
project(opencvTest)
set(CMAKE_CXX_STANDARD 17)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(opencvTest main.cpp)
target_link_libraries(opencvTest ${OpenCV_LIBS})
#包括
应该是这样的
相对而言,标题搜索路径应为:
/usr/local/include/opencv4您需要
/usr/local/include/opencv4
才能在include目录中,而不是/usr/local/include/opencv4/opencv2
猜测一下,您的路径不正确。试试这个include\u目录(“/usr/local/include/”)
。您不应该在include路径和include指令中都包含opencv4/opencv2。include指令从include路径停止的地方开始。@john我认为错误实际上是在opencv4/opencv2/opencv.hpp
中生成的,在那里它无法找到“opencv\u模块”
,即使它们在同一目录中。我也尝试了你的建议,但没有奏效,但我认为这实际上不会有什么不同。。虽然我可能错了,但非常感谢@drescherjm,它工作得非常完美……对我有效的是:sudo cp-r/usr/local/include/opencv4/opencv2/usr/include/这确实是一个更好、更合适的CMake
解决方案。请在发布答案或问题时使用StackOverflow编辑器中可用的正确代码格式选项。
cmake_minimum_required(VERSION 3.15)
project(opencvTest)
set(CMAKE_CXX_STANDARD 17)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(opencvTest main.cpp)
target_link_libraries(opencvTest ${OpenCV_LIBS})