gpt4 book ai didi

从基于 OpenCV 静态库的项目创建可移植静态库

转载 作者:行者123 更新时间:2023-11-30 19:26:05 25 4
gpt4 key购买 nike

我使用静态库选项 (-DBUILD_SHARED_LIBS=OFF) 编译了 OpenCV 3.x。

不,我有一个使用 OpenCV 构建的项目,其功能很少。
我想将我的项目构建为可移植静态库。
我所说的可移植是指我可以与其他人共享它,以便在他们的代码中使用我的函数,而无需安装 OpenCV。

如何在 Windows、macOS 和 Linux 上执行此操作?
我希望使用编译器完成该过程,以便从所有 OpenCV 库中仅提取所需的对象(函数)。

它与该主题的其他问题有何不同?
我的问题与将多个静态库归档为一个的通用答案的区别在于选择要包含哪些函数。

假设我们有 2 个静态库 - lib001.liblib002.lib
其中lib001.lib具有函数fun001()fun002()fun003() lib002.libfun004()fun005()fun006()

假设这些函数具有我不知道的依赖性(我没有编写库)。因此,在我的项目中,我使用 fun001()fun005() ,假设 fun001() 取决于 fun004()fun005() 取决于 fun002()

我想要的是链接器来理解这一点并为我构建一个自定义静态库,其中包括我的函数和 fun001()fun002() fun003()fun004() 无需我告知依赖关系。

备注
上面我假设静态库中的每个对象都是一个函数。可以用对象代替函数的使用,这样会更准确。

最佳答案

如果您希望在您提到的所有 3 个平台上以静态方式编译 OpenCV,我建议使用 conan.io 包管理器 ( here is the conan-opencv package ),方法是发出以下命令:

conan install opencv/4.1.1@conan/stable -o shared=False --build=missing

然后,在您的项目中使用 conan 并制作最终的静态可执行文件。

Here是柯南的官方文档,附有示例。

就您而言,您的 conanfile.txt 将包含以下内容:

[requires]
opencv/4.1.1@conan/stable

[generators]
cmake

[options]
opencv:shared=False

关于从基于 OpenCV 静态库的项目创建可移植静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57939317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com