【问题标题】:OpenCV as a static library (cmake options)OpenCV 作为静态库(cmake 选项)
【发布时间】:2011-11-26 20:16:25
【问题描述】:

我想在嵌入式系统中使用 OpenCV 库,我需要使用 OpenCV 作为静态库来编译我的项目。

如何使用 cmake 选项创建库?

【问题讨论】:

    标签: opencv cmake static-libraries


    【解决方案1】:

    要将 OpenCV 构建为静态库,您需要将 BUILD_SHARED_LIBS 标志设置为 false/off:

    cmake -DBUILD_SHARED_LIBS=OFF ..
    

    但我认为这对您的任务来说还不够,因为您实际上需要为您的架构交叉编译库。在 Android 或 IOS 的情况下,此类端口已经存在,您可以简单地使用它。如果是其他平台,您需要创建自己的 cmake 工具链文件以进行交叉编译,并可能在 OpenCV 构建系统中进行一些修复。

    【讨论】:

    • 可以用一些神奇的-DCMAKE_CXX_COMPILER=i586-mingw32msvc-g++ 来消除 Windows 的交叉编译(使用 mingw32)吗?我看到了 CMake 相对于 autotools 的优势,但是 CMake 相当于 ./configure --help 是什么?
    • @Andrey Kamaev 这个标志在哪里?文件名是什么?
    • 知道了,在CMAKE(GUI)里面
    • 即使将标志 BUILD_SHARED_LIBS 设置为 OFF,我仍然可以链接 libgstreamer-0.10.so.0。知道为什么吗?
    • @TomaszGandor ccmake . == ./configure --help
    【解决方案2】:

    BUILD_SHARED_LIBS=OFF cmake 选项将创建静态库。

    需要注意的是,在撰写本文时,OpenCV 并不真正支持静态构建,因为安装在某个地方时结果将无法使用。

    https://github.com/opencv/opencv/issues/21447#issuecomment-1013088996

    【讨论】:

      猜你喜欢
      • 2018-11-19
      • 1970-01-01
      • 2018-10-31
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-05
      相关资源
      最近更新 更多