【问题标题】:Building toy package linking to Rcpp构建链接到 Rcpp 的玩具包
【发布时间】:2013-07-24 12:33:33
【问题描述】:

我一直在尝试按照Seamless R and C++ Integration with Rcpp这本书构建一个虚拟包 这本质上是运行 1-liner: Rcpp.package.skeleton("mypackage")

J:\R\tests>ls -rla mypackage
total 2
drwx------+ 1  mkpasswd   0 Jul 24 12:24 src
drwx------+ 1  mkpasswd   0 Jul 24 12:24 man
drwx------+ 1  mkpasswd   0 Jul 24 12:24 R
-rwx------  1  mkpasswd  54 Jul 24 12:24 NAMESPACE
-rwx------  1  mkpasswd 336 Jul 24 12:24 DESCRIPTION
drwx------+ 1  mkpasswd   0 Jul 24 12:24 ..
drwx------+ 1  mkpasswd   0 Jul 24 12:24 .

一切正常,然后我尝试安装新创建的包。

J:\R\tests>"C:\Program Files\R\R-3.0.1\bin\x64\R.exe" CMD INSTALL mypackage

这很失败

J:\R\tests>"C:\Program Files\R\R-3.0.1\bin\x64\R.exe" CMD INSTALL mypackage

package::utils loaded
LC_TIME have been set to C
Sourcing utility file : J:/R//utils/utils.R
Adding instantClient path: C:\instantclient\x64\instantclient_11_2 to PATH
Adding MOSEK: C:\Travail\Tools\mosek\7\tools\platform\win64x86\bin to PATH
J:/R//utils/descriptifTables.csv successfully loaded in a global data.frame descriptifTables

##------ [J:/R/tests] Wed Jul 24 12:26:42 2013 ------##
* installing to library 'J:/R/win-library/3.0'
* installing *source* package 'mypackage' ...
** libs

*** arch - i386
g++ -m32 -I"C:/PROGRA~1/R/R-30~1.1/include" -DNDEBUG    -I"J:/R/win-library/3.0/Rcpp/include" -I"d:/RCompile/CRANpkg/extralibs64/local/include"     -O2 -Wall  -mtune=core2 -c rcpp_hello_world.cpp -o rcpp_hello_world.o
Syntax error: end of file unexpected (expecting "fi")
make: *** [mypackage.dll] Error 2
ERROR: compilation failed for package 'mypackage'
* removing 'J:/R/win-library/3.0/mypackage'

我一直在尝试对 Rstudio 做同样的事情,结果是一样的。 我一直在从源代码(.tar.gz 文件)构建其他几个包,没有太多问题

【问题讨论】:

    标签: r rcpp


    【解决方案1】:

    奇怪的错误。除了不要在带有空格的路径中安装 R 之外,想不到太多了——“Windows 上的 R 常见问题解答”本身的建议。

    但这显然只是本地安装的问题,因此请阅读本书第 2 章的 Windows 部分。你必须打电话给R,因为奇怪的"C:\Program Files\R\R-3.0.1\bin\x64\R.exe" 强烈表明你没有按预期安装R 和Rtools。

    【讨论】:

    • 告诉我的雇主......每次我在家里用 Ubuntu 或 Mint 做某事时,它开箱即用,在 Windows 7 上做这件事需要无限的时间。
    • 我很少在 Windows 上工作(即使在办公室),但当我这样做时,我知道如何设置 PATH。真的没那么难...
    • Sys.setenv(PATH="whatever") 在我的Renviron.site 文件中。我知道,但可能没那么容易……
    • 那是错误的,你得到了你应得的。你必须设置PATH 在你启动你正在使用的shell之前,即设置PATH系统范围,然后启动一个新的cmd.exe
    • 我不知道你刚才想说什么。在开发不友好的 Windows 平台上,有许多关于如何设置 R 编译环境 的教程。你为什么不读其中之一?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2014-06-25
    • 2021-12-14
    相关资源
    最近更新 更多