【问题标题】:Weird error mkdir "The syntax of the command is incorrect" error when installing Rcpp and RInside on windows 7, 64bit在 Windows 7、64 位上安装 Rcpp 和 RInside 时出现奇怪的错误 mkdir “命令的语法不正确”错误
【发布时间】:2013-12-29 15:26:46
【问题描述】:

我之前在 Windows 7 上成功安装了 Rcpp。现在我换了一台新 PC,以下命令神秘地失败了。我四处搜寻,发现其他人的错误通常与目录名称中的空格有关。所以我将 R 安装到一个没有空格的目录中。但同样的错误仍然存​​在。 我注意到错误从“mkdir -p ../inst/lib/i386”行开始,并带有“命令的语法不正确”的消息。这看起来不像 mkdir 在类 unix 系统中显示的消息。 我在 Windows 7 PC 上安装了 VirtualBox 和 Windows 7 XP Mode。猜测可能是 mkdir 命令以某种方式被其他一些 windows mkdir 命令遮蔽,因此出现了奇怪的错误。有人可以帮助解决这个问题,以便我可以在 PC 上从源代码安装 Rcpp 吗?

> install.packages("Rcpp", type = "source")
Installing package into ‘D:/Documents/R/win-library/3.0’
(as ‘lib’ is unspecified)
trying URL 'http://stat.ethz.ch/CRAN/src/contrib/Rcpp_0.10.6.tar.gz'
Content type 'application/x-gzip' length 1985569 bytes (1.9 Mb)
opened URL
downloaded 1.9 Mb

* installing *source* package 'Rcpp' ...
** package 'Rcpp' successfully unpacked and MD5 sums checked
** libs

*** arch - i386
cygwin warning:
  MS-DOS style path detected: C:/R/R-30~1.1/etc/i386/Makeconf
  Preferred POSIX equivalent is: /cygdrive/c/R/R-30~1.1/etc/i386/Makeconf
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
g++ -m32 -I"C:/R/R-30~1.1/include" -DNDEBUG -I../inst/include/    -I"d:/RCompile/CRANpkg/extralibs64/local/include"     -O2 -Wall  -mtune=core2 -c Date.cpp -o Date.o
g++ -m32 -I"C:/R/R-30~1.1/include" -DNDEBUG -I../inst/include/    -I"d:/RCompile/CRANpkg/extralibs64/local/include"     -O2 -Wall  -mtune=core2 -c Module.cpp -o Module.o
gcc -m32 -I"C:/R/R-30~1.1/include" -DNDEBUG -I../inst/include/    -I"d:/RCompile/CRANpkg/extralibs64/local/include"     -O3 -Wall  -std=gnu99 -mtune=core2 -c Rcpp_init.c -o Rcpp_init.o
g++ -m32 -I"C:/R/R-30~1.1/include" -DNDEBUG -I../inst/include/    -I"d:/RCompile/CRANpkg/extralibs64/local/include"     -O2 -Wall  -mtune=core2 -c Timer.cpp -o Timer.o
g++ -m32 -I"C:/R/R-30~1.1/include" -DNDEBUG -I../inst/include/    -I"d:/RCompile/CRANpkg/extralibs64/local/include"     -O2 -Wall  -mtune=core2 -c api.cpp -o api.o
g++ -m32 -I"C:/R/R-30~1.1/include" -DNDEBUG -I../inst/include/    -I"d:/RCompile/CRANpkg/extralibs64/local/include"     -O2 -Wall  -mtune=core2 -c attributes.cpp -o attributes.o
g++ -m32 -I"C:/R/R-30~1.1/include" -DNDEBUG -I../inst/include/    -I"d:/RCompile/CRANpkg/extralibs64/local/include"     -O2 -Wall  -mtune=core2 -c barrier.cpp -o barrier.o
g++ -m32 -I"C:/R/R-30~1.1/include" -DNDEBUG -I../inst/include/    -I"d:/RCompile/CRANpkg/extralibs64/local/include"     -O2 -Wall  -mtune=core2 -c exceptions.cpp -o exceptions.o
ar crs libRcpp.a Date.o Module.o Rcpp_init.o Timer.o api.o attributes.o barrier.o exceptions.o
mkdir -p ../inst/lib/i386
The syntax of the command is incorrect.
make: [userlib] Error 1 (ignored)
mv libRcpp.a ../inst/lib/i386/libRcpp.a 
mv: cannot move `libRcpp.a' to `../inst/lib/i386/libRcpp.a': No such file or directory
make: [userlib] Error 1 (ignored)
"zDate.o Module.o Rcpp_init.o Timer.o api.o attributes.o barrier.o exceptions.o" was unexpected at this time.
make: *** [Rcpp.dll] Error 1
ERROR: compilation failed for package 'Rcpp'
* removing 'D:/Documents/R/win-library/3.0/Rcpp'

The downloaded source packages are in
        ‘C:\Users\User Name\AppData\Local\Temp\RtmpcVfKZv\downloaded_packages’
Warning messages:
1: running command '"C:/R/R-3.0.1/bin/x64/R" CMD INSTALL -l "D:\Documents\R\win-library\3.0" C:\Users\USERNA~1\AppData\Local\Temp\RtmpcVfKZv/downloaded_packages/Rcpp_0.10.6.tar.gz' had status 1 
2: In install.packages("Rcpp", type = "source") :
  installation of package ‘Rcpp’ had non-zero exit status

【问题讨论】:

  • which mkdiralias mkdir 告诉你什么?
  • 感谢您的提示。这也是我试图找出的东西。 Windows 上的 mkdir 正确指向“c:\Rtools\bin\mkdir.exe”的位置,我在下面回复了 Dirk 的修复。

标签: r mkdir rcpp rinside install.packages


【解决方案1】:

我怀疑这几乎肯定是$PATH 问题。

确保 Rtools 二进制文件排在其他位置之前。您似乎从其他地方打了make 二进制文件。

【讨论】:

  • 感谢您的快速回复。事实证明,这次 $PATH 变量没问题。 Rtools 二进制文件是 PATH 中的第一项。在您指出“make”之后,我注意到一个名为“MAKE_MODE”的可疑系统范围的环境变量,可能由之前安装的 cygwin 或 mingw 设置为“win32”。我删除了该变量,重新启动了 R,现在 Rcpp 和 RInside 成功安装,没有问题。谢谢你的精彩包裹,德克!我认为我应该切换到 Linux 以使自己摆脱所有这些 Windows 混乱。
  • 很高兴能帮上忙,是的,这样的环境。 var 改变 make 的行为当然也是一种可能。这就是追虫的乐趣所在,总有一个新的:)
猜你喜欢
  • 2020-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-04
  • 2012-10-11
  • 2015-03-30
  • 1970-01-01
相关资源
最近更新 更多