我正在尝试从 rforge 上可用的源安装 krb5 软件包 rforge .
为此,我在 Windows 7 上的 RStudio (1.0.136) 和 R (3.3.1) 中使用以下命令。
install.packages("krb5",,"http://rforge.net/",type="source")
不幸的是,这会导致以下错误:
* installing *source* package 'krb5' ...
** libs
*** arch - i386
c:/Rtools/mingw_32/bin/gcc -I"C:/PROGRA~1/R/R-33~1.1/include" -DNDEBUG -I"d:/Compiler/gcc-4.9.3/local330/include" -O3 -Wall -std=gnu99 -mtune=core2 -c k.c -o k.o
k.c:1:18: fatal error: krb5.h: No such file or directory
#include <krb5.h>
^
compilation terminated.
make: *** [k.o] Error 1
Warnung: Ausführung von Kommando 'make -f "Makevars" -f "C:/PROGRA~1/R/R-33~1.1/etc/i386/Makeconf" -f "C:/PROGRA~1/R/R-33~1.1/share/make/winshlib.mk" SHLIB="krb5.dll" OBJECTS="k.o"' ergab Status 2
ERROR: compilation failed for package 'krb5'
* removing 'C:/Users/Fabian Desktop/Documents/R/win-library/3.3/krb5'
Warning in install.packages :
running command '"C:/PROGRA~1/R/R-33~1.1/bin/x64/R" CMD INSTALL -l "C:\Users\User\Documents\R\win-library\3.3" C:\Users\User\AppData\Local\Temp\RtmpCOnG2U/downloaded_packages/krb5_0.1.tar.gz' had status 1
Warning in install.packages :
installation of package ‘krb5’ had non-zero exit status
似乎没有找到文件“krb5.h”。这是有道理的,因为该包构建在 MIT 的可用 Kerberos 项目上 here .
我面临的问题是我从未构建过 C 项目。因此,我不知道如何“合并”这两个项目,也不知道在哪里将 MIT 项目添加到 R 包中,以便在构建 R 包时可以使用它。非常感谢我应该采取的简短分步指南来使这项工作正常进行。
最佳答案
警告:我对 krb5 包的细节一无所知。但请继续阅读...
Rcpp 包的一个常见模式是,它们一方面是 R 之间的接口(interface),另一方面是外部库之间的接口(interface)。
为了编译连接两个这样的世界的代码,您需要两个世界的头文件和库。。 R覆盖了自己的一侧。
但是,如果您安装了 Kerberos(开发)软件,krb5 可能只会让您能够与 Kerboros 后端对话。换句话说,krb5 很可能是 Kerberos 网关,而不是 Kerberos 本身。
关于c - 从源代码构建 R 包 krb5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41556301/