libstableR没有';t为macOS构建
我想在mac上使用R包libstableR。我不是该软件包的撰稿人/作者,并已就以下事项与他们联系: 在联系了说问题可能与R不知道GSL在计算机上的位置有关的作者后,我提出了申请,并要求mac用户执行以下操作:libstableR没有';t为macOS构建,r,R,我想在mac上使用R包libstableR。我不是该软件包的撰稿人/作者,并已就以下事项与他们联系: 在联系了说问题可能与R不知道GSL在计算机上的位置有关的作者后,我提出了申请,并要求mac用户执行以下操作: 一定要有 一定要有 确保在R中有Rcpp和:justinstall.packages(“RcppGSL”) 资料来源: 应用上述步骤已更改了的输出 devtools::install_github("swihart/libstableR") 发件人: 基本上,这些错误不是抱怨\u
install.packages(“RcppGSL”)
devtools::install_github("swihart/libstableR")
发件人:
基本上,这些错误不是抱怨\u stable\u set\u THREADS
而是与\u libstableR\u stable\u cdf
有关libstableR\u stable\u cdf
是一个导出函数。应用Roxygen/Rcpp时,\u libstableR\u stable\u cdf
中的前导下划线放在那里
我花了大约两个月的时间在网上进行修补和搜索,试图让这个程序启动并运行,现在我来寻求帮助
无论如何,要让libstableR在mac上工作?所以,我去拿了(我知道Bruce有回购协议,但我想看看原件)
我已经安装了gsl
(自制)和RcppGSL
我做了一个快速的devtools::document()
,因为我发现它在任何地方都使用Rcpp,并且得到:
Error in dyn.load(dllfile) :
unable to load shared object '/private/tmp/libstableR/src/libstableR.so':
dlopen(/private/tmp/libstableR/src/libstableR.so, 6): Symbol not found: _libstableR_stable_cdf
Referenced from: /private/tmp/libstableR/src/libstableR.so
Expected in: flat namespace
in /private/tmp/libstableR/src/libstableR.so
对于stable\u cdf()
有两个定义(一个Rcpp公开,一个内部),因此我对内部定义int\u stable\u cdf()
进行了修改,并对其进行了单数调用
我仍然有一个类似的错误,所以我怀疑他们手工制作了一些东西
我进入并根据roxygen注释自动生成名称空间,并为关键公开函数添加了/'@export
s
从Rcpp auto gen的注册码现在起,我删除了init.c
我仍然得到一个错误,但这次是因为stable\u set\u线程
不可用
事实证明他们根本不在乎macOS的人:
#ifdef __WIN32
void stable_set_THREADS(unsigned int value) {
/*
SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo);
THREADS = (unsigned int)sysinfo.dwNumberOfProcessors;
*/
THREADS = 12;
}
#else
#ifdef __unix
void stable_set_THREADS(unsigned int value) {
if (value == 0) THREADS = sysconf(_SC_NPROCESSORS_ONLN);
else THREADS = value;
//printf("\nCPUs = %u\n",THREADS);
}
#endif
#endif
我删除了unix
ifdef
,调整了一些附带的东西,它就工作了
我将看看我们是否能在GH上实现这一点,并让维护人员确定一些进一步的调整,以使其他人更容易做出贡献。嘿,布鲁斯。看看是否适合你。我可以在本周晚些时候和它聊天。很有效!如果你想要一些互联网点数,请回答。;-)我已经深深地感谢你了!如果您联系维护人员,请随时抄送我。lemme将发布更多“我做了什么来修复”类型的答案。这可能对其他人有帮助。
Error in dyn.load(dllfile) :
unable to load shared object '/private/tmp/libstableR/src/libstableR.so':
dlopen(/private/tmp/libstableR/src/libstableR.so, 6): Symbol not found: _libstableR_stable_cdf
Referenced from: /private/tmp/libstableR/src/libstableR.so
Expected in: flat namespace
in /private/tmp/libstableR/src/libstableR.so
#ifdef __WIN32
void stable_set_THREADS(unsigned int value) {
/*
SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo);
THREADS = (unsigned int)sysinfo.dwNumberOfProcessors;
*/
THREADS = 12;
}
#else
#ifdef __unix
void stable_set_THREADS(unsigned int value) {
if (value == 0) THREADS = sysconf(_SC_NPROCESSORS_ONLN);
else THREADS = value;
//printf("\nCPUs = %u\n",THREADS);
}
#endif
#endif