2015-02-06 19 views
7

Jestem całkiem nowy dla R, więc przepraszam za głupie pytanie. Próbuję uruchomić program rcpp, ale utknąłem w nieskończonej pętli R, prosząc mnie o ponowną instalację programów RTools.Błąd podczas instalacji i uruchamiania rcpp

Poszerzyłem kod w this blog post, chociaż po raz pierwszy zainstalowałem wszystko ręcznie & Później ponownie wszystko instalowałem kilka razy. Używam Windows 7, R wersji 3.1.2, R Studio wersji 0.98.1091 (nie to ma znaczenie) i RTools 3.1.

edytowany kulminacyjnym co moja konsola wygląda to następująco:

> library(installr) 
Welcome to installr version 0.15.3... 

> install.Rtools() 
Loading required package: devtools 
No need to install Rtools - You've got the relevant version of Rtools installed 

> find_rtools() 
[1] TRUE 

> library(Rcpp) 
> evalCpp("1+1") 

Error in sourceCpp(code = code, env = env, rebuild = rebuild, showOutput = showOutput, : 
Error 65535 occurred building shared library. 

W tym momencie okno dialogowe wyskakuje mówiąc:

Install Build Tools Compiling C/C++ code for R requires installation of additional build tools. Do you want to install the additional tools now?

I wtedy przekierowanie do pobrania i re - ponownie zainstaluj RTools 3.1 z powrotem.

Widziałem, że może to być problem ze zmienną PATH ale próbowałem różnych rzeczy, w tym:

  1. Nothing (extra) w zmiennej PATH
  2. tym zarówno odniesienia do R (C: \ Program Files \ R \ R-3.1.2 \ bin \ x64) i RTools (C: \ RBuildTools \ 3.1 \ bin; C: \ RBuildTools \ 3.1 \ gcc-4.6.3 \ bin;) w PATH. Raz z RTools najpierw, raz z R najpierw
  3. W tym tylko odniesienie do RTools w PATH, jak polecił mi to początkowy plik instalacyjny.

Wszelkie pomysły na rzeczy do wypróbowania byłby przyjęty z wdzięcznością!

EDIT

następujący komentarz Dirka wygląda jak mogę mieć problem z jak RTools jest zainstalowany. Postępowałem zgodnie z instrukcjami z kilku blogów/tutoriali na temat instalacji programów RTools; wszystko bez skutku (jeszcze!)

This GitHub page podaje instrukcje, jak zainstalować i sprawdzić, czy instalacja zadziałała. Podążyłem za wszystkimi kontrolami (patrz poniżej na kopię konsoli) i wygląda na to, że mam działającą instalację RTools, ale kiedy próbuję uruchomić evalCPP() ponownie pojawia się ten sam błąd, co przed poleceniem instalacji RTools.

> Sys.getenv('PATH') 
[1] "C:\\Program Files\\R\\R-3.1.2\\bin\\x64;C:\\RTools\\bin;C:\\RTools\\gcc-4.6.3\\bin;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files (x86)\\Enterprise Vault\\EVClient\\;C:\\Program Files (x86)\\Microsoft SQL Server\\100\\Tools\\Binn\\VSShell\\Common7\\IDE\\;C:\\Program Files (x86)\\Microsoft SQL Server\\100\\Tools\\Binn\\;C:\\Program Files\\Microsoft SQL Server\\100\\Tools\\Binn\\;C:\\Program Files (x86)\\Microsoft SQL Server\\100\\DTS\\Binn\\;C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\Common7\\IDE\\PrivateAssemblies\\;C:\\Program Files\\Microsoft SQL Server\\110\\Tools\\Binn\\;C:\\Program Files\\Microsoft\\Web Platform Installer\\;C:\\Program Files (x86)\\Microsoft SDKs\\TypeScript\\1.0\\;C:\\Program Files\\Microsoft SQL Server\\100\\DTS\\Binn\\" 
Warning message: 
printing of extremely long output is truncated 

> system('g++ -v') 
Using built-in specs. 
COLLECT_GCC=C:\RTools\GCC-46~1.3\bin\G__~1.EXE 
COLLECT_LTO_WRAPPER=c:/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) 

> system('where make') 
C:\Rtools\bin\make.exe 

Spojrzałem również na Appendix D of R Installation and Admin. Nic tu nie widzę, jeszcze nie próbowałem, z wyjątkiem section D.4 co sugeruje, że może potrzebować odbudować rcpp ze źródła przy użyciu moich zainstalowanych RTools. Nie mam czasu, aby to zrobić od razu, ale spróbuję, chyba że ludzie powiedzą, że ta trasa nie jest warta mojego czasu.

EDIT v2

Więc próbowałem budowę RCPP od źródła ... i to nie działało. Pobrałem pliki źródłowe i pliki binarne z pakietu od the CRAN Rcpp package page.W konsoli R teraz uzyskać:

> install.packages(pkgs = "C:/Rcpp_0.11.4.tar.gz", repos = NULL, contriburl = NULL, type = "source", verbose = TRUE) 
Installing package into ‘C:/Users/james.macadie/Documents/R/win-library/3.1’ 
(as ‘lib’ is unspecified) 
system (cmd0): C:/PROGRA~1/R/R-31~1.2/bin/x64/R CMD INSTALL 
Warning in install.packages : 
    package ‘C:/Rcpp_0.11.4.tar.gz’ is not available (for R version 3.1.2) 

Chyba moje aktywne pytania teraz sprowadzają się do:

  • Czytając całość postu powyżej ktoś może mi powiedzieć jak to naprawić rzeczy tak po prostu działa ? Lub, jeśli nie ...
  • Jakie testy mogę uruchomić, aby sprawdzić, czy naprawdę poprawnie zainstalowałem Rtools? Wszystko, co znalazłem w Internecie, sugeruje: system('where make') itd. Jednak dowód na to, że nie można uruchomić evalCpp lub innych funkcji rccp sugeruje, że nie.
  • Co robię źle podczas budowania ze źródła? Czy powinienem spróbować opcji wiersza poleceń?

EDIT v3

Running evalCpp z showOutput= TRUE i verbose = TRUE Chyba śledzone błąd z powrotem do R CMD SHLIB nie działa. Połączyłem się z this blog, który pokazuje, jak pracować z wierszem poleceń R bezpośrednio. Jednak gdy dojdę do linii R CMD SHLIB sequence_examples.c, wykonanie przechodzi prosto do następnego wiersza poleceń, nie robiąc nic, generując jakiekolwiek pliki w katalogu lub wyrzucając jakiekolwiek błędy. Próbowałem uruchamiając --help opcje w linii poleceń, ale uzyskać ten sam rodzaj błędu:

C:\Users\james.macadie> R --help 


Or: R CMD command args 

where 'command' is one of: 
    INSTALL Install add-on packages 
    REMOVE Remove add-on packages 
    SHLIB Make a DLL for use with dynload 
    BATCH Run R in batch mode 
    build Build add-on packages 
    check Check add-on packages 
    Rprof Post process R profiling files 
    Rdconv Convert Rd format to various other formats 
    Rdiff difference R output files 
    Rd2pdf Convert Rd format to PDF 
    Rd2txt Convert Rd format to pretty text 
    Stangle Extract S/R code from vignette 
    Sweave Process vignette documentation 
    config Obtain configuration information about R 
    open  Open a file via Windows file associations 
    texify Process a latex file 

Use 
    R CMD command --help 
for usage information for each command. 


C:\Users\james.macadie> R CMD SHLIB --help 

C:\Users\james.macadie> 

nb dla osób czytających wcześniejsze próbki kodu wyżej w tym poście zmieniłem kilka rzeczy, ponieważ migawki kodu:

  • Zainstalowałem R bezpośrednio w C: \ R. Kiedyś był w C: \ Program Files \ R \, ale sugerowano, że ścieżki do plików ze spacjami mogą powodować problemy.
  • Mam odniesienie do Rtools w C: \ Rtools \, a nie C: \ RBuildTools \

Dzięki za wszelkie sugestie, jak zawsze

+1

jest udokumentowane w wielu miejscach, w tym podręcznikach R, a także liczne samouczki co wypróbowałeś, nie działało dla ciebie, może spróbujesz innego? Rcpp nie wymaga niczego specjalnego, ale musisz mieć działające Rtools. –

+0

Wypróbuj inną wersję Rtools. Jeśli używasz Rtools32.exe, powiedz, a następnie spróbuj odinstalować i zainstalować Rtools31.exe, pobierając go z http://cran.r-project.org/bin/windows/Rtools/ i uruchamiając pobrany właśnie instalator. Pamiętaj, aby rozpocząć świeżą sesję R i jeśli uruchamiasz R z sesji cmd, to uruchom ją ponownie. –

+0

Niestety, już wypróbowałem Rtools32.exe –

Odpowiedz

0

W końcu było to trochę po lewej stronie pola. Zainspirowany przez following post, rzuciłem okiem na zmienną środowiskową ComSpec. Nie do końca pewny jak, ale miałem go ustawiony na "cmd.exe".

Usunięcie podwójnych cudzysłowów, tak aby było napisane cmd.exe, a następnie ponowne uruchomienie naprawiło wszystko.

Dziękuję wszystkim, którzy próbowali pomóc.

6

Gdyby tę samą nieskończoną pętlę problem gdy próbuje zainstalować Twittera BreakoutDetection (który jest również napisane w CPP)

stałe wykonując następujące

Sys.setenv(PATH="%PATH%;C:/Rtools/gcc-4.6.3/bin;c:/Rtools/bin") 

a następnie odpowiadając na „nie”, gdy są prezentowane z następujący monit:

"Zainstaluj narzędzia budowania Kompilowanie kodu C/C++ dla R wymaga instalacji dodatkowych narzędzi do kompilacji. Czy chcesz teraz zainstalować dodatkowe narzędzia?"

Nie próbowałem te działania niezależnie, więc nie wiem, czy też na własną rękę byłoby Naprawiono problem

0

Uważam, że zapewnienie wszystkie z nich były w moim ścieżka ustalone to zrobiłem to z RStudio zamknięte.; nie po restarcie.

C:\Program Files\R\R-3.1.3\bin\x64 
C:\Program Files\R\R-3.1.3\bin 
C:\RBuildTools\3.2\bin 
C:\RBuildTools\3.2\gcc-4.6.3\bin64 
C:\RBuildTools\3.2\gcc-4.6.3\bin 
C:\RBuildTools\3.2\gcc-4.6.3\i686-w64-mingw32\bin 

są na moim Win7-64bit komputerze. YMMV, a ja głównie opublikowania tego celu zapewnienia inni widzą go, jeśli mają one ten sam problem.

Powiązane problemy