gpt4 book ai didi

opencv - CMake,.dll 与 .dll.a 与 .a : What library should I specify in the CMake configuration?

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:49 24 4
gpt4 key购买 nike

我正在使用 Windows 10 和 CMake 3.14.1。

我正在尝试自己构建 OpenCV(版本 4.0.1),因为我需要 contrib 模块和 SFM 模块。我下载了 openBLAS 0.2.19 的预构建版本。它有 3 个目录,binincludelib。bin 目录包括 libopenblas.dll,include 有头文件,在 lib 中有 libopenblas.a 和 libopenblas.dll.a(以及一个 cmake 目录)。

当我使用 CMake 配置 openCV 时,我当然将 openBLAS_INCLUDE_DIR 设置为包含目录。但是我应该为 openBLAS_LIB 指定哪个文件呢? libopenblas.dll、libopenblas.a 还是 libopenblas.dll.a?

稍后当我构建 openCV(使用 Visual Studio 2017)时,我应该将 .dll 放在哪里以便构建过程可见?

编辑:也许我应该补充一点,OpenBLAS 是用 minGW 编译的,这就是为什么有那些奇怪的 .a 和 .dll.a 文件而不是 .lib

最佳答案

我现在至少可以部分回答我的问题。这两个答案对我有帮助:

https://stackoverflow.com/a/2139061/6793721

https://stackoverflow.com/a/6480464/6793721

所以 .a 文件通常是 Unix 静态库,对于 Windows 我们有 .lib。由于 minGW 使用 GCC,它生成 .a 库,但在某种程度上它们与 Visual Studio 和 MSVC 兼容。所以我猜 libopenblas.a 是完整的 static 库,而 libopenblas.dll.aimport 库与 libopenblas.dll 一起使用。现在,在构建 openCV 时,我在 CMake 中指定了 libopenblas.dll.a 作为库,一切正常(配置、构建、安装)。我确实将 .dll 所在的目录添加到 PATH,但我不确定是否需要这样做或者是否是最好的方式。

关于opencv - CMake,.dll 与 .dll.a 与 .a : What library should I specify in the CMake configuration?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55610732/

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