【发布时间】:2015-03-31 13:35:28
【问题描述】:
我习惯了 R,但我完全是 C++ 的初学者。我很难安装 GSL 以在 R 中将其与 RcppGSL 一起使用,以优化包含 C++ 代码的包。我下载了最新的GSL版本,解压到C:/GSL,设置环境变量LIB_GSL为C:/GSL和PATHtoC:/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 包的专家)