Sum*_*nal 6 lapack gsl docker nativecall raku
我想打电话给CHISQ功能的累积分布函数在GSL从乐。
这是我的乐曲脚本 chisq.raku
#Calling gsl_cdf_chisq-P function in GSL from raku
use NativeCall;
sub gsl_cdf_chisq_P(num64, num64) returns num64 is native('gsl') { * };
sub gsl_cdf_chisq_Q(num64, num64) returns num64 is native('gsl') { * };
sub pchisq($q, $df, $lower-tail = True) {
my $a = $q.Num;
my $b = $df.Num;
if $lower-tail == True {
return gsl_cdf_chisq_P($a, $b)
} else {
return gsl_cdf_chisq_Q($a, $b)
}
}
say pchisq(3,4);
Run Code Online (Sandbox Code Playgroud)
执行此脚本时,出现以下错误:
Cannot locate native library '(null)': /usr/lib/x86_64-linux-gnu/libgsl.so: undefined symbol: cblas_ctrmv
in method setup at /usr/share/perl6/core/sources/947BDAB9F96E0E5FCCB383124F923A6BF6F8D76B (NativeCall) line 286
in block gsl_cdf_chisq_P at /usr/share/perl6/core/sources/947BDAB9F96E0E5FCCB383124F923A6BF6F8D76B (NativeCall) line 578
in sub pchisq at chisq.raku line 13
in block <unit> at chisq.raku line 19
Run Code Online (Sandbox Code Playgroud)
通过阅读有关NativeCall的文档,我将共享库包括在内libgsl.so
。
谷歌搜索显示cblas_ctrmv
可能(不确定)与lapack相关。
所以我搜索了liblapack.so
里面确实存在的/usr/lib
。
echo $LD_LIBRARY_PATH
显示
/usr/local/lib/R/lib::/lib:/usr/local/lib:/usr/lib/x86_64-linux-gnu:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server
Run Code Online (Sandbox Code Playgroud)
要看到,如果我可以修复它,我加入/usr/lib
到LD_LIBRARY_PATH
带命令export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib
,并试图再次运行该脚本。
仍然无法正常工作,相同的错误消息。
我在 rstudio 的 docker 容器中运行代码。
乐乐版本 2019.11
它有gsl-dev
文件和gsl
库。容器libgsl.so
内部有共享库/usr/lib/x86_64-linux-gnu/
。此文件夹中的其他共享库是
有没有办法让它工作?
归档时间: |
|
查看次数: |
135 次 |
最近记录: |