【发布时间】:2011-11-26 20:16:25
【问题描述】:
我想在嵌入式系统中使用 OpenCV 库,我需要使用 OpenCV 作为静态库来编译我的项目。
如何使用 cmake 选项创建库?
【问题讨论】:
标签: opencv cmake static-libraries
我想在嵌入式系统中使用 OpenCV 库,我需要使用 OpenCV 作为静态库来编译我的项目。
如何使用 cmake 选项创建库?
【问题讨论】:
标签: opencv cmake static-libraries
要将 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 是什么?
ccmake . == ./configure --help
BUILD_SHARED_LIBS=OFF cmake 选项将创建静态库。
需要注意的是,在撰写本文时,OpenCV 并不真正支持静态构建,因为安装在某个地方时结果将无法使用。
https://github.com/opencv/opencv/issues/21447#issuecomment-1013088996
【讨论】: