- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 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 设置为包含目录。但是我应该为 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.a
是 import 库与 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/
我是一名优秀的程序员,十分优秀!