jig*_*ggy 5 opencv cmake openblas
我正在使用 Windows 10 和 CMake 3.14.1。
我正在尝试自己构建 OpenCV(版本 4.0.1),因为我需要 contrib 模块和 SFM 模块。我下载了 openBLAS 0.2.19 的预构建版本。它有 3 个目录:bin、include和lib。bin 目录包含 libopenblas.dll,include 具有标头,lib 中有 libopenblas.a 和 libopenblas.dll.a (以及 cmake 目录)。
当我使用 CMake 配置 openCV 时,我当然将 openBLAS_INCLUDE_DIR 设置为包含目录。但是我应该指定哪个文件来打开BLAS_LIB?libopenblas.dll、libopenblas.a 还是 libopenblas.dll.a?
稍后,当我构建 openCV(使用 Visual Studio 2017)时,我应该将 .dll 放在哪里,以便它对构建过程可见?
编辑:也许我应该补充一点,OpenBLAS 是用 minGW 编译的,这就是为什么有那些奇怪的 .a 和 .dll.a 文件而不是 .lib
我现在至少可以部分回答我的问题。这两个答案对我有帮助:
所以.a文件通常是 Unix 静态库,对于 Windows,我们有.lib. 由于 minGW 使用 GCC,它会生成.a库,但在某种程度上它们与 Visual Studio 和 MSVC 兼容。所以我猜是libopenblas.a完整的静态库,并且libopenblas.dll.a是与libopenblas.dll. 现在,在构建 openCV 时,在 CMake 中我指定libopenblas.dll.a为库,并且一切正常(配置、构建、安装)。我确实将其所在的目录添加.dll到了 PATH 中,但我不确定是否需要这样做或者是最好的方法。