4.11.0

构建教程

下载代码及其组件

opencv_contrib

从github下载 4.11.0 版本

opencv 源代码

从github下载4.11.0版本

构建步骤

CMake Gui下选择VS2022 x64编译器

建立build文件夹并将其指向

构建选项

win
  • OPENCV_EXTRA_MODULES_PATH: F:/Git/opencv_contrib-4.11.0/modules // 指向opencv_contrib modules

  • BUILD_opencv_world: ON //该选项将构建一个完整的dll

  • WITH_VTK: OFF //暂不依赖VTK 根据情况设置

  • CMAKE_BUILD_TYPE: Debug // 根据需要可切Release

mac
  • OPENCV_EXTRA_MODULES_PATH: /Users/maoyuzhuo/Documents/opencv/opencv_contrib-4.11.0/modules

  • BUILD_opencv_world: ON //该选项将构建一个完整的dll

  • WITH_VTK: OFF //暂不依赖VTK 根据情况设置

  • CMAKE_BUILD_TYPE: Debug // 根据需要可切Release

  • CMAKE_INSTALL_PREFIX: /Users/maoyuzhuo/Documents/opencv/build/install

  • CMAKE_OSX_ARCHITECTURES: arm64

  • WITH_PROTOBUF: FALSE

  • BUILD_PROTOBUF: FALSE

Configure

CMake Gui下点击Configure 进入识别

请确保依赖库下载正确及完整,如若下载失败 可重新 Configure

如果下载失败,可通过代理进行下载,开启系统代理,如小飞机,并设置端口用于共享,比如1099端口

http_proxy:socks5://127.0.0.1:1099
https_proxy:socks5://127.0.0.1:1099

重新识别即可

Generate

CMake Gui下点击Generate 进行生成

Build And Install

CMake Gui下点击Open Project 并使用VS2022打开项目

参照如下步骤点击即可,会进行build + install

库形式

拷贝build/install 目录下的文件并组成如下形式即可

  • include 目录直接复制即可

  • bin 目录

  • lib目录

参考CMake

# opencv 引用规则
# 包含以下可用变量
# opencv_INCLUDE_DIRS      头文件目录
# opencv_LIBS              LinkTarget
# opencv_DYLIBS            动态库

set(_ROOT "${CMAKE_CURRENT_LIST_DIR}/../modules/opencv")

if(MSVC) # windows
    set(opencv_INCLUDE_DIRS "${_ROOT}/include")
    set(_LIB_ROOT "${_ROOT}/lib")
    set(_BIN_ROOT "${_ROOT}/bin")

    # Create imported target opencv_world
    add_library(opencv_world SHARED IMPORTED)
    set_property(TARGET opencv_world APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE;DEBUG)
    set_target_properties(opencv_world PROPERTIES
            IMPORTED_IMPLIB_DEBUG "${_LIB_ROOT}/opencv_world4110d.lib"
            IMPORTED_IMPLIB_RELEASE "${_LIB_ROOT}/opencv_world4110.lib"
            IMPORTED_LOCATION_DEBUG "${_BIN_ROOT}/opencv_world4110d.dll"
            IMPORTED_LOCATION_RELEASE "${_BIN_ROOT}/opencv_world4110.dll"
            INTERFACE_INCLUDE_DIRECTORIES "${opencv_INCLUDE_DIRS}"
    )

    # Create imported target opencv_img_hash
    add_library(opencv_img_hash SHARED IMPORTED)
    set_property(TARGET opencv_img_hash APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE;DEBUG)
    set_target_properties(opencv_img_hash PROPERTIES
            IMPORTED_IMPLIB_DEBUG "${_LIB_ROOT}/opencv_img_hash4110d.lib"
            IMPORTED_IMPLIB_RELEASE "${_LIB_ROOT}/opencv_img_hash4110.lib"
            IMPORTED_LOCATION_DEBUG "${_BIN_ROOT}/opencv_img_hash4110d.dll"
            IMPORTED_LOCATION_RELEASE "${_BIN_ROOT}/opencv_img_hash4110.dll"
            INTERFACE_LINK_LIBRARIES "opencv_world;opencv_world"
            INTERFACE_INCLUDE_DIRECTORIES "${opencv_INCLUDE_DIRS}"
    )

    set(opencv_LIBS opencv_world opencv_img_hash)
    if (CMAKE_BUILD_TYPE STREQUAL "Debug")
        set(opencv_DYLIBS
                "${_BIN_ROOT}/opencv_world4110d.dll"
                "${_BIN_ROOT}/opencv_img_hash4110d.dll"
        )
    else ()
        set(opencv_DYLIBS
                "${_BIN_ROOT}/opencv_world4110.dll"
                "${_BIN_ROOT}/opencv_img_hash4110.dll"
        )
    endif ()
elseif(APPLE)

endif ()


本站由 困困鱼 使用 Stellar 创建。