- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试构建 Armadillo C++ 库(6.6 版),它确实构建良好。然而,我的问题是我已经单独下载了 OpenBLAS 的源代码并构建了它。我希望 Armadillo 使用我在本地构建的 OpenBLAS,并且我希望它将它静态链接到生成的 Armadillo 库中。
所以,
最佳答案
如果您从源代码安装了 OpenBLAS,它位于非标准位置(对我来说是/opt/OpenBLAS)并且具有非标准名称 (OpenBLAS)。因此cmake很难找到它,以解决问题请编辑 your_sources_dir/cmake_aux/Modules/ARMA_FindOpenBLAS.cmake 中的文件,如下所示:
set(OpenBLAS_NAMES)
set(OpenBLAS_NAMES ${OpenBLAS_NAMES} openblaso)
set(OpenBLAS_NAMES ${OpenBLAS_NAMES} openblasp)
set(OpenBLAS_NAMES ${OpenBLAS_NAMES} openblas )
set(OpenBLAS_NAMES ${OpenBLAS_NAMES} OpenBLAS )
set(OpenBLAS_TMP_LIBRARY)
set(OpenBLAS_TMP_LIBRARIES)
foreach (OpenBLAS_NAME ${OpenBLAS_NAMES})
find_library(${OpenBLAS_NAME}_LIBRARY
NAMES ${OpenBLAS_NAME}
PATHS ${CMAKE_SYSTEM_LIBRARY_PATH} /lib64 /lib /usr/lib64 /usr/lib /usr/local/lib64 /usr/local/lib /opt/local/lib64 /opt/local/lib /opt/OpenBLAS/lib
)
set(OpenBLAS_TMP_LIBRARY ${${OpenBLAS_NAME}_LIBRARY})
if(OpenBLAS_TMP_LIBRARY)
set(OpenBLAS_TMP_LIBRARIES ${OpenBLAS_TMP_LIBRARIES} ${OpenBLAS_TMP_LIBRARY})
endif()
endforeach()
# use only one library
if(OpenBLAS_TMP_LIBRARIES)
list(GET OpenBLAS_TMP_LIBRARIES 0 OpenBLAS_LIBRARY)
endif()
if(OpenBLAS_LIBRARY)
set(OpenBLAS_LIBRARIES ${OpenBLAS_LIBRARY})
set(OpenBLAS_FOUND "YES")
else()
set(OpenBLAS_FOUND "NO")
endif()
if(OpenBLAS_FOUND)
if (NOT OpenBLAS_FIND_QUIETLY)
message(STATUS "Found OpenBLAS: ${OpenBLAS_LIBRARIES}")
endif()
else()
if(OpenBLAS_FIND_REQUIRED)
message(FATAL_ERROR "Could not find OpenBLAS")
endif()
endif()
# mark_as_advanced(OpenBLAS_LIBRARY)
然后使用 cmake 进行 Armadillo 的常规安装。
希望这个建议对您有所帮助。
关于c++ - 如何构建 Armadillo C++ 库以在非标准位置静态链接到 OpenBLAS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36266242/
我从 C++ atm 开始,希望使用矩阵并加快总体速度。之前使用过 Python+Numpy+OpenBLAS。认为 c++ + Eigen + MKL 可能更快或至少不慢。 我的 C++ 代码: #
是否可以像 sudo apt-get install openblas-dev 这样通过 apt-get 安装 openblas? 似乎在 ubuntu 14.04 上找不到它。 sudo apt-g
在 C++17 中,我想使用多个 OpenBLAS 子程序,每个子程序具有不同的线程数。有什么办法可以做到这一点? 过去,我使用过 openblas_set_num_threads();为我的 Ope
存在实现矩阵类型和计算的 C++ 库,例如 Eigen 或 Boost::uBlas。 还有一些库,例如 LAPACK、Goto-BLAS、OpenBLAS 和 ATLAS,可在浮点类型上实现高度优化
我能够在 MinGW64 下编译 Armadillo + OpenBLAS,但是链接是通过“libopenblas”,我认为它是 dll。在 Ubuntu 下,我可以通过我认为是静态的“openbla
我在 Ubuntu 14.04 64 位的硕士论文中成功使用了 Armadillo 和 OpenBLAS(安装了 Armadillo 和没有安装)。性能非常出色——我的代码主要由基本矩阵运算组成。所有
我编译了 OpenBLAS 并将其安装在/usr/lib/libopenblas现在我想在运行的替代系统中安装库 #!/bin/bash update-alternatives --install
我已经在 TX1 中安装了 OpenBlas,并且 time_dgemm 示例使用 gcc 编译得很好。但是,我需要能够使用 g++ 将其余代码与 OpenBlas 链接起来。当我尝试使用 g++ 编
我正在使用 numpy,我的模型涉及密集的矩阵-矩阵乘法。为了加快速度,我使用 OpenBLAS 多线程库来并行化 numpy.dot 函数。 我的设置如下, 操作系统:CentOS 6.2 服务器
我需要将 Armadillo (当前版本为 5.100.1)作为 $HOME 中的本地库(集群应用程序,不能安装在每个计算节点上,但 $HOME 是共享文件夹)。我正在使用 cmake 来管理应用程序
我需要用 Fortran 制作一个点积。我可以使用内在函数 dot_product来自 Fortran 或使用 ddot来自 OpenBLAS。问题是 ddot 速度较慢。这是我的代码: 使用BLAS
我最近下载并构建了 Spark 2.3.1。我使用这些命令下载并选择版本 2.3.1 git clone https://github.com/apache/spark.git cd spark
我有一台 Windows 7-64 位计算机,我正在尝试通过 Msys2 构建 OpenBlas 库。 gcc 似乎存在一些问题,因为在安装 minGW 和解压缩的 OpenBlas 文件夹后,我打开
我的标题中某处有此声明: typedef float real; typedef int integer; extern "C" { extern int sgemm_(char *transa, c
我安装了 OpenBlas 并且可以通过使用编译链接到 OpenBlas 的 C 程序 gcc testOpenBlas.c -I /opt/OpenBLAS/include/ -L/opt/Op
我想知道是否可以在(Python)运行时更改 OpenBLAS 在 numpy 后面使用的最大线程数? 我知道可以在通过环境变量 OMP_NUM_THREADS 运行解释器之前设置它,但我想在运行时更
我正在尝试使用 OpenBLAS 安装 numpy ,但是我不知道如何编写 site.cfg 文件. 当installation procedure随后安装完成且没有错误,但是将 OpenBLAS 使
我正在尝试在 OSX Mavericks 上构建 OpenBLAS ( http://www.openblas.net/ ) 只需键入“make”,它就会在 make 过程的几分钟内遇到错误。 我已经
为了演示,我使用 3 行 CMakeLists.txt: cmake_minimum_required(VERSION 2.8) find_package( BLAS REQUIRED ) messa
我正在使用OpenBLAS我的 BLAS和 LAPACK例行通话。我不想要我的 C++ 的用户群库必须在他们的机器上安装依赖项。所以我想提供OpenBLAS我的图书馆 third_party并有 CM
我是一名优秀的程序员,十分优秀!