2015-03-31 36 views
1

我已经习惯了R,但我是一个完整的C++初学者。我很难安装GSL来将它与R中的RcppGSL一起使用,以便优化包含C++代码的包。我下载了最新的GSL版本,将其解压到C:/GSL,将环境变量LIB_GSL设置为C:/GSL,将PATH设置为C:/GSL/binRccpGSL,在Windows 7上安装/使用R的GSL

就像我说的,我想改进现有的软件包。我已经分叉并从github上提取了有问题的软件包的最新版本。我的主要目标是简单地使用和优化软件包。然而,当我试图做一个源码包出来的源文件,我得到了以下错误:

Installing to library 'C:/Users/Simon/Documents/R/win-library/3.1' 
* installing *source* package 'Rflim' ... 
** libs 
g++ -m64 -I"C:/PROGRA~1/R/R-31~1.2/include" -DNDEBUG -I"C:/Users/Simon/Documents/R/win-library/3.1/Rcpp/include" -I"d:/RCompile/CRANpkg/extralibs64/local/include" -IC:/Users/Simon/Documents/R/win-library/3.1/Rcpp/include -I/usr/local/include -I C:/Users/Simon/Documents/R/win-library/3.1/RcppGSL/include -O2 -Wall -mtune=core2 -c flim.cpp -o flim.o 
In file included from C:/Users/Simon/Documents/R/win-library/3.1/RcppGSL/include/RcppGSL.h:23:0, 
       from flim.cpp:1: 
C:/Users/Simon/Documents/R/win-library/3.1/RcppGSL/include/RcppGSLForward.h:26:29: fatal error: gsl/gsl_vector.h: No such file or directory 
compilation terminated. 
make: *** [flim.o] Error 1 
Warnung: Ausf�hrung von Kommando 'make -f "Makevars" -f "C:/PROGRA~1/R/R-31~1.2/etc/x64/Makeconf" -f "C:/PROGRA~1/R/R-31~1.2/share/make/winshlib.mk" SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="Rflim.dll" WIN=64 TCLBIN=64 OBJECTS="flim.o"' ergab Status 2 
ERROR: compilation failed for package 'Rflim' 
* removing 'C:/Users/Simon/Documents/R/win-library/3.1/Rflim' 

Exited with status 1. 

对不起,有一对夫妇的德语单词中有: Warnung:Ausfhrung冯Kommando ==警告:执行命令

我意识到R正试图通过RcppGSL路径访问GSL库。那是对的吗?它不应该直接转到C:/ GSL吗?我也意识到,R正试图从Rcpp以及RcppGSL的路径,我不明白为什么......

我希望有关如何解决问题的任何澄清或建议。

谢谢!!!

+0

sry ..应该读取错误信息。 – 2015-03-31 14:50:47

+0

您可以在您的系统上找到gsl头文件(例如gsl_vector.h)吗? – 2015-03-31 14:58:38

+0

是的,他们在这里:C:\ GSL \ include \ gsl – 2015-03-31 15:03:40

回答

2

请从support site provided by Prof Ripley在Windows上安装预生成GSL版本的R,然后在src/Makevars.win

## This assumes that the LIB_GSL variable points to working GSL libraries 
PKG_CPPFLAGS=-I$(LIB_GSL)/include -I../inst/include 
PKG_LIBS=-L$(LIB_GSL)/lib -lgsl -lgslcblas 

直接或设置LIB_GSL据此相应地设置这些值。

这就是CRAN如何构建软件包,它显然工作。

+0

非常感谢你的回答。我毫不怀疑这是做到这一点的方法,但作为初学者,我仍然不确定如何正确使用makevars文件。但是,src中没有makevars.win文件。只makevars文件tpe“保存箱” – 2015-04-01 13:13:41

+0

随着德克的手持我设法安装GSL。 RcppGSLexample正在工作。诀窍是将C:/ local320/lib/x64中的所有文件复制到C:/ local320/lib。剩下的就像Dirk提到的那样。 – 2015-04-02 13:44:05

+0

尽管如我在原始问题中提到的,我尝试安装的软件包仍然无法正常工作。但这似乎不是一个GSL问题....? – 2015-04-02 13:45:55