我的系统中安装了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)
答案 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参数传递自定义路径,以使您的项目更加强大,以备将来使用。