【发布时间】:2021-12-09 20:23:03
【问题描述】:
我对 CMake 还很陌生,但我想构建一个测试 .cpp 文件,其中包含 OpenCV 并向我显示图像。我在路径 /usr/local 中构建了 OpenCV,并且这里有带有 opencv.hpp 文件的文件夹 - /usr/local/include/opencv4/opencv2/opencv.hpp。这是我的 CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.0)
project(cpp_proj)
find_package(OpenCV REQUIRED)
add_executable(cpp_proj opencv_cpp.cpp)
include_directories(${OPENCV4_INCLUDES})
target_link_libraries(cpp_proj )
我打开~./bashrc 并在那里添加了几行:
export OPENCV4_INCLUDES=/usr/local/include/
export OPENCV4_LIBRARIES=/usr/local/lib/
export PATH=$PATH:$OPENCV4_LIBRARIES
export PATH=$PATH:$OPENCV4_INCLUDES
当我在 bash 中运行 cmake 时 - 一切正常,甚至 find_package 都能找到 OpenCV。但是当我尝试运行 make 时,它给了我一个错误:
pi@raspberrypi:~/Desktop/cpp_proj/build $ cmake ..
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/Desktop/cpp_proj/build
pi@raspberrypi:~/Desktop/cpp_proj/build $ make
[ 50%] Building CXX object CMakeFiles/cpp_proj.dir/opencv_cpp.cpp.o
/home/pi/Desktop/cpp_proj/opencv_cpp.cpp:1:10: fatal error: opencv2/opencv.hpp: No such file or directory
#include <opencv2/opencv.hpp>
^~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/cpp_proj.dir/build.make:63: CMakeFiles/cpp_proj.dir/opencv_cpp.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/cpp_proj.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
我发现了同样问题的问题,但它们没有帮助我。我做错了什么?这可能是什么原因?谢谢!
【问题讨论】:
-
不应该
OPENCV4_INCLUDES是/usr/local/include/opencv4/吗? -
@G.M.感谢您的回答!但我什至试过这个。我尝试了很多路径变体,但它们没有帮助
-
使用
OpenCV_INCLUDE_DIRS代替OPENCV4_INCLUDES并回滚bashrc更改。 -
@u-235 谢谢!那行得通,但是现在当我像
undefined reference to `cv::imreadmake 时出现其他错误 -
target_link_libraries(cpp_proj ${OpenCV_LIBS})呢?