我對CMake很陌生,但我想構建一個.cpp包含OpenCV并顯示影像的測驗檔案。我已經在路徑中構建了OpenCV,/usr/local并且這里有帶有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
當我cmake在 bash 中運行時 - 一切正常,甚至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
我發現了有同樣問題的問題,但它們對我沒有幫助。我做錯了什么?這可能是什么原因?謝謝!
uj5u.com熱心網友回復:
為了使用庫,您必須指定包含目錄以及庫。
使用 find_package(在模塊模式下),在您的情況下,它應該填充變數 OpenCV_INCLUDE_DIRS 和 OpenCV_LIBS 供您使用。
所以我建議添加/更改您的代碼以添加包含目錄并鏈接庫(如下所示)
target_include_directories(${CMAKE_PROJECT_NAME} public ${OpenCV_INCLUDE_DIRS})
target_link_libraries(${CMAKE_PROJECT_NAME} public ${OpenCV_LIBS})
我不相信你在使用 find_package 時需要觸摸 ~./bashrc
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/338185.html
