我是Linux系统的新手,但我的项目确实需要这个,所以我真的需要你的帮助。
以下是发生的事情:我在Linux系统上安装了OpenCV 2.4,并且还安装了另一个名为libv4l的库。出于某种原因,安装后,cmake无法找到OpenCv。所以我这次安装了OpenCV 3.0,希望这是一个兼容性问题。
但是,OpenCV 2.4默认安装在/ usr / lib(我使用cmake,make,make install),OpenCV 3.0安装在/ usr / local / lib。
现在当我尝试cmake时,我收到了这个警告:
Cannot generate a safe runtime search path for target <projectname>
because files in some directories may conflict with libraries in
implicit directories:
...list of files that exist both in usr/lib and usr/local/lib
当我忽略警告并继续make时,我收到以下错误:
No rule to make target <an opencv file>
我的CMakeLists如下:
cmake_minimum_required (version 2.8)
project(camera_test)
find_package(OpenCV 3.0.0) #also tried without 3.0.0
set(CMAKE_MODULE_PATH "usr/local/lib/cmake/${CMAKE_MODULE_PATH}")
find_package(raspicam REQUIRED)
target_link_libraries (camera_test ${raspicam_LIBS})
target_link_libraries (camera_test ${opencv_LIBS})
我认为我的问题与以下页面相同:
Removing all installed OpenCV libs
http://answers.opencv.org/question/52921/how-to-uninstall-opencv249-completely-in-ubuntu-1404/
然而,这是最后的问题:
我为openCV 3.0做了“make uninstall”,然后使用了
sudo find / -name "*opencv*" -exec rm {} \;
并重新安装openCV 3.0
但它没有解决我的问题。它仍然认为usr / lib上有文件,虽然我找不到任何文件了。
请建议我一个解决方案,如果你能简单地告诉我这件事的逻辑,我真的很感激。我的意思是,它如何知道在usr / lib上安装了opencv,我留下了什么痕迹?在这种情况下,我需要寻找/执行的基本文件/命令是什么。
非常感谢,非常感谢您的帮助。
编辑:这是完整的CMakeLists文件:
cmake_minimum_required (VERSION 2.8)
project (raspicam_test)
find_package(OpenCV 3.0.0)
set(CMAKE_MODULE_PATH “/usr/local/lib/cmake/${CMAKE_MODULE_PATH}”)
find_package(raspicam REQUIRED)
IF ( OpenCV_FOUND AND raspicam_CV_FOUND )
MESSAGE(STATUS “COMPILING OPENCV TESTS”)
add_executable (simpletest_raspicam_cv simpletest_raspicam_cv.cpp)
target_link_libraries (simpletest_raspicam_cv ${raspicam_CV_LIBS} )
target_link_libraries (simpletest_raspicam_cv ${OpenCV_LIBS})
ELSE()
MESSAGE(FATAL_ERROR “OPENCV NOT FOUND IN YOUR SYSTEM”)
ENDIF()
答案 0 :(得分:0)
可能的原因:
sudo find / -name "*opencv*" -exec rm {} \;
不会删除目录。但是
中有一些cmake文件/usr/share/opencv
因此不会被删除,包含以前的OpenCV安装的弃用信息。
您可以检查文件系统中是否存在这些文件吗?