我已经查询了与我的具体问题相关的SO上的现有条目,但仍无法解决它。
我正在尝试使用我的机器工作,我的管理员权限有限,但我可以运行Rtools.exe,所以我安装了它。
我对R的设置是:
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
version.string R version 3.3.0 (2016-05-03)
我是RStudion版本0.99.902。我安装了Rtools版本3.3.0.1959。
所有R,Rstudio和Rtools都安装在C:/ WORK /中,这是我有一些有限的管理权限。
在我的系统ENV变量中,我已经设置了:
C:\\WORK\\Rtools\\bin; C:\\WORK\\Rtools\\gcc- 4.6.3\\bin; C:\\WORK\\R-3.3.0\\bin\\x64;"
当我跑步时
system('where make')
我得到了
C:\WORK\Rtools\bin\make.exe
当我跑步时
system('g++ -v')
我明白了:
Using built-in specs.
COLLECT_GCC=C:\WORK\Rtools\GCC-46~1.3\bin\G__~1.EXE
COLLECT_LTO_WRAPPER=c:/WORK/rtools/gcc-46~1.3/bin/../libexec/gcc/i686-w64- mingw32/4.6.3/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: /data/gannet/ripley/Sources/mingw-test3/src/gcc/configure --host=i686-w64-mingw32 --build=x86_64-linux-gnu --target=i686-w64-mingw32 --with-sysroot=/data/gannet/ripley/Sources/mingw-test3/mingw32mingw32/mingw32 --prefix=/data/gannet/ripley/Sources/mingw-test3/mingw32mingw32/mingw32 --with-gmp=/data/gannet/ripley/Sources/mingw-test3/mingw32mingw32/prereq_install --with-mpfr=/data/gannet/ripley/Sources/mingw-test3/mingw32mingw32/prereq_install --with-mpc=/data/gannet/ripley/Sources/mingw-test3/mingw32mingw32/prereq_install --disable-shared --enable-static --enable-targets=all --enable-languages=c,c++,fortran --enable-libgomp --enable-sjlj-exceptions --enable-fully-dynamic-string --disable-nls --disable-werror --enable-checking=release --disable-win32-registry --disable-rpath --disable-werror CFLAGS='-O2 -mtune=core2 -fomit-frame-pointer' LDFLAGS=
Thread model: win32
gcc version 4.6.3 20111208 (prerelease) (GCC)
编译时,我收到此错误:
Error in compileCode(f, code, language = language, verbose = verbose) :
Compilation ERROR, function(s)/method(s) not created!
c:/Rtools/mingw_64/bin/g++: not found
我的问题是:为什么R仍在寻找
中的g ++ c:/Rtools/mingw_64/bin/g++
我没有设置R在
中寻找它 C:/WORK/Rtools?
即使我手动添加
c:/WORK/Rtools/mingw_64/bin/g++
在ENV变量中,我仍然遇到了同样的错误。 (由于管理员权限,我无法在C:/中创建Rtools文件夹。)
有没有人遇到这个具体问题?
答案 0 :(得分:11)
路径c:/Rtools/mingw_64/bin/
被硬编码到位于R安装位置的文件Makeconf
中(在我的情况下为C:\Progs\R\R-3.4.1\etc\x64
),作为变量BINPREF的值。
最简单的方法是将此路径更改为路径C:/WORK/Rtools/bin
(在我的情况下为C:/Progs/RTools/3.4/mingw_64/bin/
)。这对我来说是一个全新的R-3.4.1和Rtools3.4,以及一个最小的例子。
答案 1 :(得分:2)
正在发生的事情是需要在RTools 34上使用 NOT 33用于R 3.3.x.
删除rtools安装,然后按照此处的指南进行操作:
http://thecoatlessprofessor.com/programming/rcpp/install-rtools-for-rcpp/
@David,您需要删除C:\WORK\Rtools\<something>
的所有实例,并且任何重复项(例如C:\WORK\R-3.3.0\bin\x64
出现两次。)然后添加:
C:\ WORK \ Rtools \ BIN; C:\ WORK \ Rtools \ mingw_32 \ BIN;
答案 2 :(得分:0)
一个可行且简单的方法是在以下提示中选择“完全安装以构建32或64位”。
答案 3 :(得分:0)
我在使用RStudio 1.3+和RTools 4.0的Windows 10上遇到了相同的问题。在安装RTools并尝试安装另一个软件包(需要RTools)之后,它不断抛出错误
c:/ rtools40 / mingw32 / bin / g ++:没有这样的文件或目录
它一直在Windows上错误地选择RTools安装路径。重新启动RStudio后,它选择了正确的路径:
C:\ RBuildTools \ 4.0 \ mingw32 \ bin
答案 4 :(得分:0)
我这样解决:只需在所需的路径中复制所需的文件即可。 (我的情况是在C:\ rtools40 \ mingw64 \中将bin目录复制到他搜索并工作的路径中!)