【问题标题】:RccpGSL, installing/using GSL from R on windows 7RccpGSL,在 Windows 7 上从 R 安装/使用 GSL
【发布时间】:2015-03-31 13:35:28
【问题描述】:

我习惯了 R,但我完全是 C++ 的初学者。我很难安装 GSL 以在 R 中将其与 RcppGSL 一起使用,以优化包含 C++ 代码的包。我下载了最新的GSL版本,解压到C:/GSL,设置环境变量LIB_GSLC:/GSLPATHtoC:/GSL/bin

就像我说的,我想改进一个现有的包。我已经从 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.

抱歉,里面有几个德语单词: 警告:Ausf�hrung von Kommando==警告:正在执行命令

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

如有任何关于如何解决问题的说明或建议,我将不胜感激。

谢谢!!!

【问题讨论】:

  • sry.. 应该已经阅读了错误信息。
  • 你能找到你系统上的gsl头文件(例如gsl_vector.h)吗?
  • 是的,它们在这里:C:\GSL\include\gsl
  • 我猜make文件是为linux机器编写的问题,确实包括/usr/local/include下的头文件,使用-I /usr/local/include ...但是在你的案例我认为你应该有类似 -I C:\GSL\include\ 的东西。因此,我想您可以调整 make 文件或将 gsl 标头放入已包含的 Windows 目录之一(例如 C:/Users/Simon/Documents/R/win-library/3.1/RcppGSL/include/)。 ...(免责声明:我绝不是构建 R 包的专家)

标签: c++ r rcpp gsl


【解决方案1】:

请从support site provided by Prof Ripley 在 Windows 上安装 R 的预构建 GSL 版本,然后在 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 构建包的方式,它显然有效。

【讨论】:

  • 非常感谢您的回答。我毫不怀疑这是这样做的方法,但作为一个初学者,我仍然不确定如何正确使用 makevars 文件。但是,在 src 中没有 makevars.win 文件。仅 makevars 文件 tpe “保护盒”
  • 在 Dirk 的手下,我设法安装了 GSL。 RcppGSLexample 正在工作。诀窍是将所有文件从 C:/local320/lib/x64 复制到 C:/local320/lib。其余的就像 Dirk 提到的那样。
  • 我尝试安装的软件包,如原始问题中所述,但仍然无法正常工作。但这似乎不是 GSL 问题....?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
  • 2011-06-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多