如何在 xeus-cling 活页夹中手动包含 OpenBLAS 和 LAPACK?

How can I include OpenBLAS and LAPACK manually in xeus-cling binder?

我正在尝试使用 xeus-cling 和 mybinder 创建一个 C++ Jupyter Notebook。我想包括图书馆犰狳,我能够在 Jupyter Notebook 中本地完成,如下所示:

#pragma cling add_library_path("armadillo-10.7.5")
#pragma cling add_include_path("armadillo-10.7.5/include/")
#pragma cling load("armadillo")

#include <armadillo>

using namespace std;
using namespace arma;

mat A(4, 5, fill::randu);
mat B(4, 5, fill::randu);
  
cout << A*B.t() << endl;

文件结构与此 Github 存储库中的相同(您还可以在 README 中找到活页夹 link):https://github.com/AntonioDaSilva/xeus-cling

但是,armadillo 需要库 OpenBLAS 和 LAPACK,我无法在 mybinder 上安装这些库,因为我没有管理员权限。我相信这就是当我在活页夹中 运行 上面的代码时出现以下错误的原因:

cling::DynamicLibraryManager::loadLibrary(): libblas.so.3: cannot open shared object file: No such file or directory
IncrementalExecutor::executeFunction: symbol 'dgemv_' unresolved while linking function '_GLOBAL__sub_I_cling_module_6'!
IncrementalExecutor::executeFunction: symbol 'dsyrk_' unresolved while linking function '_GLOBAL__sub_I_cling_module_6'!
IncrementalExecutor::executeFunction: symbol 'ddot_' unresolved while linking function '_GLOBAL__sub_I_cling_module_6'!
IncrementalExecutor::executeFunction: symbol 'dgemm_' unresolved while linking function '_GLOBAL__sub_I_cling_module_6'!

你能帮我弄清楚如何在活页夹中手动包含这些库吗?

我怀疑您可以根据 here:

添加一个包含以下内容的 apt.txt 配置文件到您的 repo
libblas-dev
liblapack-dev

这可能不是当前要列出的那些,因此您可能需要多看看周围以找到当前最好的,以便在当前 linux 系统中使用 apt-get 安装;然而,这就是想法。

the Jupyter Discourse forum here 的回复底部查看有关 apt.txt 配置文件使用的更多信息。

(目前在组合使用 apt.txtinstall.R 时存在问题,请参阅 here。我 认为 这是特定于R 安装;但是,我想我会提到它,以防您在添加 apt.txt 时看到问题。我怀疑它会在几天内修复。)


顺便给大家看看。有一个更合适的渠道来获得有关此类事情的帮助,因为它非常具体而不是一般的安装到 linux。在 the Jupyter Discourse community forum 有一个 'repo help' 的 Binder 类别,您可以 post 这样的事情 Jupyter/MyBinder 人们会看到并可以交换想法来帮助您分类。