我正在尝试安装
中提供的RcppGSLLinking GSL library to RcppGSL on Windows machine
将上面链接中显示的库读取到C:/ local323之后 并将x64中的所有文件向上移动到LIB_GSL / lib中,如链接中所示。我使用了以下代码。
library(Rcpp)
Sys.setenv("LIB_GSL" = "C:/local323") # this is where the library is located
Sys.setenv("PKG_LIBS"="-L(LIB_GSL)/lib -lgsl -lgslcblas")
install.packages("RcppGSL")
我添加了
行Sys.setenv("PKG_LIBS"="-L(LIB_GSL)/lib -lgsl -lgslcblas")
在做了一些研究之后得到以下错误(我仍然得到了同样的错误),并认为可能存在链接问题(只是猜测)。
我收到的错误是
RcppExports.o:RcppExports.cpp:(.text+0x916): undefined reference to `gsl_matrix_alloc'
RcppExports.o:RcppExports.cpp:(.text+0x945): undefined reference to `gsl_matrix_set'
RcppExports.o:RcppExports.cpp:(.text+0x993): undefined reference to `gsl_vector_calloc'
fastLm.o:fastLm.cpp:(.text+0x122): undefined reference to `gsl_vector_calloc'
fastLm.o:fastLm.cpp:(.text+0x131): undefined reference to `gsl_matrix_alloc'
fastLm.o:fastLm.cpp:(.text+0x142): undefined reference to `gsl_multifit_linear_alloc'
fastLm.o:fastLm.cpp:(.text+0x16d): undefined reference to `gsl_multifit_linear'
fastLm.o:fastLm.cpp:(.text+0x175): undefined reference to `gsl_multifit_linear_free'
fastLm.o:fastLm.cpp:(.text+0x24f): undefined reference to `gsl_matrix_diagonal'
setErrorHandler.o:setErrorHandler.cpp:(.text+0x104): undefined reference to `gsl_set_error_handler_off'
setErrorHandler.o:setErrorHandler.cpp:(.text+0x133): undefined reference to `gsl_set_error_handler'
非常感谢任何帮助!
非常好,
史蒂夫
答案 0 :(得分:1)
我会在命令行上尝试这个,即在cmd.exe
- 而不是从R.
通过这种方式,您应该看到编辑和链接步骤,这些步骤可能会有所帮助。
“它建立在CRAN ......”所以在正确的位置使用正确的文件,并为你设置适当的env var。
答案 1 :(得分:1)
我不知道为什么以下工作但我能够使用RcppGSL
我从我发布的链接中完全按照程序进行操作。然后而不是使用
install.packages("RcppGSL")
我从CRAN下载了zip文件,并通过R GUI安装了包,并提供了从zip安装的选项。这些应该是我知道的,但使用install.packages(“RcppGSL”)。
另外
Sys.setenv("LIB_GSL" = "C:/local323")
。
我不知道为什么,但我至少可以使用这个库。
德克谢谢你的帮助。我将讨论有关R扩展的教程,看看我是否能弄清楚发生了什么。