不知道如何将opencv库添加到CMakeLists.txt

问题描述 投票:0回答:2

我希望有人能帮助我。

我有一个简单的 CMakeLists.txt 来在 Ubuntu 上构建我的项目。我正在使用 CMake 2.8.1,目前这是代码:

cmake_minimum_required(VERSION 2.4.6)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} /home/user/workspace)
include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake)

# Set the build type.  Options are:
#  Coverage       : w/ debug symbols, w/o optimization, w/ code-coverage
#  Debug          : w/ debug symbols, w/o optimization
#  Release        : w/o debug symbols, w/ optimization
#  RelWithDebInfo : w/ debug symbols, w/ optimization
#  MinSizeRel     : w/o debug symbols, w/ optimization, stripped binaries
#set(ROS_BUILD_TYPE RelWithDebInfo)

rosbuild_init()
find_package(OpenCV 2) 

#set the default path for built executables to the "bin" directory
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
#set the default path for built libraries to the "lib" directory
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)

#uncomment if you have defined messages
#rosbuild_genmsg()
#uncomment if you have defined services
#rosbuild_gensrv()

#common commands for building c++ executables and libraries
#rosbuild_add_library(${PROJECT_NAME} src/example.cpp)
#target_link_libraries(${PROJECT_NAME} another_library)
#rosbuild_add_boost_directories()
#rosbuild_link_boost(${PROJECT_NAME} thread)
#rosbuild_add_executable(example examples/example.cpp)
#target_link_libraries(example ${PROJECT_NAME})

include_directories(${CMAKE_SOURCE_DIR}/include
                                  ${OpenCV_INCLUDE_DIRS})

rosbuild_add_executable (RosPub src/paste.cpp) target_link_libraries (RosPub openni_driver usb-1.0 ${OpenCV_LIBS})

我需要在我的项目中添加 opencv 库。我已经添加了它们,但我仍然无法让我的代码工作。它不断向我发布此错误:

“struct MyOpenNIExample::ImgContext”没有名为“image”的成员

其中有一些。

在我添加 find_package(OpenCV REQUIRED 到 CMakeLists.txt 后, 我收到这个错误

Adjust CMAKE_MODULE_PATH to find FindOpenCV.cmake or set OpenCV_DIR to the
   directory containing a CMake configuration file for OpenCV.  The file will
   have one of the following names:

     OpenCVConfig.cmake
     opencv-config.cmake

我应该做什么?我正在使用 Apple 并使用 Ubuntu 10.04。

因为我需要

#include "opencv2\opencv.hpp"
#include "opencv2\highgui\highgui.hpp"
#include "opencv2\imgproc\imgproc.hpp"

我添加了

      find_package(OpenCV 2), 
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} /home/user/workspace) and 


    include_directories(${CMAKE_SOURCE_DIR}/include
                                      ${OpenCV_INCLUDE_DIRS})
    target_link_libraries (RosPub openni_driver usb-1.0 ${OpenCV_LIBS})
c++ cmake ros
2个回答
2
投票
#include "opencv2\opencv.hpp"
#include "opencv2\highgui\highgui.hpp" 
#include "opencv2\imgproc\imgproc.hpp" 

上面的包含文件包含在ROS中的vision_opencv中。因此,要包含它,请在清单文件中添加 opencv 依赖项。

那会有帮助的。


0
投票
  1. 从上面的链接获取
    FindOpenCV.cmake
    并将其放在计算机上的任何位置。
  2. cmake_minimum_required
    之后添加行
    set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
    [
    ${CMAKE_MODULE_PATH}
    表示放置 FindOpenCV.cmake 的文件夹的路径])
  3. find_package(OpenCV)
    添加到您的 CMakeLists.txt
  4. 在此步骤中,您可以检查 CMakeLists.txt 中的 OpenCV_FOUND 和其他 OpenCV 变量
© www.soinside.com 2019 - 2024. All rights reserved.