如何在不安装的情况下将opencv源文件包含为cmake依赖项?

时间:2017-11-15 10:45:55

标签: c++ linux opencv build cmake

我的系统中安装了opencv,但我不想使用已安装的版本。已安装的版本(来自发行版存储库)是使用gcc 7编译的。

我想使用安装在单独路径中的旧gcc编译器编译一个带有opencv和dlib作为依赖项的C ++项目。我已经下载了opencv源并将其解压缩到一个单独的文件夹中。包含cmake的正确方法是什么,以便在编译期间将其编译并包含为依赖项?

这是我的项目结构。

projects/
  |--> project1/
  |      |--> main.cpp
  |      |--> CMakeLists.txt
  |
  |--> dlib/
  |
  |--> opencv-3.3.1/

我的CMakeLists.txt看起来像这样。

cmake_minimum_required(VERSION 2.8.12)

project(project1)
add_subdirectory(../dlib/dlib dlib_build)
add_subdirectory(../opencv-3.3.1/dlib opencv_build)

add_executable(project1 main.cpp)
target_link_libraries(project1 dlib::dlib opencv)

1 个答案:

答案 0 :(得分:0)

要指定其他编译器,请将-DCMAKE_CXX_COMPILER -DCMAKE_CC_COMPILER参数传入cmake,每个参数都引用相应的路径和命令。

在add_library函数中添加源时,请准确说明源的位置。 所以...

list(${CUSTOM_OPENCV} APPEND
"/custom/path/source1.cpp"
"/custom/path/source2.cpp"
)

add_library(my_app ${CUSTOM_OPENCV})

这可能是我会怎么做的。您甚至可能希望通过cmake参数传递自定义路径,以使您的项目更加强大,以备将来使用。