Problème de liaison avec OpenCV et CMake

Je suis en train d'écrire un programme qui utilise OpenCV (installé dans un répertoire local, puisque je n'ai pas les permissions root sur la machine), et j'ai écrit le correspondant CMakeLists.txt fichier. Mon problème est que la compilation échoue à l'étape de lien de différentes façons (j'ai passé trois heures à essayer toutes les différentes solutions proposées sur le web, donc j'ai vu beaucoup de résultats).
Voici les configurations/des résultats qui font plus de sens pour moi, même si elles conduisent à un échec:
[en 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
)

[en 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})

Résultat:

Linking CXX executable ../../bin/CUDA_learning
c++: opencv_imgproc: No such file or directory
c++: opencv_calib3d: No such file or directory
c++: opencv_video: No such file or directory
c++: opencv_features2d: No such file or directory
c++: opencv_ml: No such file or directory
c++: opencv_highgui: No such file or directory
c++: opencv_objdetect: No such file or directory
c++: opencv_contrib: No such file or directory
c++: opencv_legacy: No such file or directory
c++: opencv_gpu: No such file or directory

Si, contrairement aux recommandations formulées sur le net, j'ai mis un "-l" avant le nom de la bibliothèque OpenCV-je obtenir:

Linking CXX executable ../../bin/CUDA_learning
/usr/bin/ld: cannot find -lopencv_core
collect2: ld returned 1 exit status
make[2]: *** [../bin/CUDA_learning] Error 1
make[1]: *** [src/CMakeFiles/CUDA_learning.dir/all] Error 2
make: *** [all] Error 2

Personne ne sait comment résoudre cette chose? Je suis littéralement de conduire un fou sur cette...
Merci beaucoup à l'avance!
Cheers,
Rob

OriginalL'auteur Rob | 2011-09-14