小编Rob*_*Rob的帖子

将问题与OpenCV和CMake联系起来

我正在编写一个使用OpenCV的程序(安装在本地目录中,因为我在该机器上没有root权限),并且我编写了相应的CMakeLists.txt文件.我的问题是编译在链接阶段以不同的方式失败(我花了三个小时尝试在网上提出的所有不同的解决方案,所以我看到了很多结果).在这里你是对我更有意义的配置/结果,即使它们导致失败:[在project_root/CMakeLists.txt]:

cmake_minimum_required(VERSION 2.8)
project(CUDA_learning)

set(OpenCV_INCLUDE_DIR "path/to/opencv_CUDA/include")
include_directories(${OpenCV_INCLUDE_DIR})
set(OpenCV_LIBS_DIR "path/to/opencv_CUDA/lib")
link_directories(${OpenCV_LIBS_DIR})
set(OpenCV_LIBS "opencv_core opencv_imgproc opencv_calib3d opencv_video opencv_features2d opencv_ml opencv_highgui opencv_objdetect opencv_contrib opencv_legacy opencv_gpu")

find_package(Boost COMPONENTS system filesystem program_options regex REQUIRED)
if(Boost_FOUND)
  include_directories(${Boost_INCLUDE_DIR})
else(Boost_FOUND)
  message(FATAL_ERROR "Cannot build application without Boost. Please set Boost_INCLUDE_DIR.")
endif(Boost_FOUND)

set(CMAKE_BUILD_TYPE debug)

add_definitions("-Wall")

set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/../bin)

subdirs (
  ../src
)
Run Code Online (Sandbox Code Playgroud)

[在project_root/src/CMakeLists.txt中]:

FILE(GLOB dir_source *.cc 2D/*.cc)
FILE(GLOB dir_header *.hh 2D/*.hh)

add_executable(${PROJECT_NAME} ${dir_source} ${dir_header})
target_link_libraries(${PROJECT_NAME} ${Boost_PROGRAM_OPTIONS_LIBRARY} ${Boost_FILESYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${OpenCV_LIBS})
Run Code Online (Sandbox Code Playgroud)

结果:

Linking CXX executable ../../bin/CUDA_learning
c++: opencv_imgproc: No such file or directory …
Run Code Online (Sandbox Code Playgroud)

opencv cmake

9
推荐指数
2
解决办法
2万
查看次数

标签 统计

cmake ×1

opencv ×1