web-dev-qa-db-ja.com

Rcpp Rtoolsはインストールされていますが、エラーメッセージg ++が見つかりません

特定の問題に関連する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フォルダーを作成できません。)

誰かがこの特定の問題に遭遇しましたか?

12
DavidH

パス 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の新規インストール、および最小限の例でうまくいきました。

13
Linus Ker

何が起こっているのかというと、R 3.3.xではRTools 34と[〜#〜] not [〜#〜]33を使用する必要があります。

Rtoolsインストールを削除してから、次のガイドに従ってください。

http://thecoatlessprofessor.com/programming/rcpp/install-rtools-for-rcpp/

@ David、C:\WORK\Rtools\<something>のすべてのインスタンスと重複を削除する必要があります(たとえば、C:\WORK\R-3.3.0\bin\x64が2回表示されます)。次に、次を追加します。

c:\ WORK\Rtools\bin; c:\ WORK\Rtools\mingw_32\bin;

3
coatless

これを行うためのもっともらしい簡単な方法は、次のプロンプトで「32ビットまたは64ビットをビルドするためのフルインストール」を選択することです。enter image description here

0
H.Lee