2016-02-08 2 views
-2

Я пытаюсь связать R и C в окнах, следуя инструкциям на этой веб-страницеLinking C и R в Windows,

http://mcglinn.web.unc.edu/blog/linking-c-with-r-in-windows/

У меня есть R, RTOOLS и TurboC4 все в отдельных папках в диске С , Моя система 64бит, но я попробовал его на 32 и 64 бит R.

Я написал следующий код в C

#include <R.h> 

void hello(int *n) 
{ int i; 
    for(i=0; i<=*n; i++){ 
    Rprintf("hello, world!this is hell though I'm enjoying it\n"); 
    } 
} 

и сохраняется с именем WORLD.C на отдельном файле путь к которому является C: \ TurboC4 \ TC \ BIN

Я также написал следующий код R

hello2 <- function(n) { 
.C("hello", as.integer(n)) 
} 

hello2(5) 

и сохраните его с именем WORLD.R.

Теперь я должен подготовить свое окно. Я скачал RTools33.exe отсюда https://cran.r-project.org/bin/windows/Rtools/

и установить переменные окружения вручную с помощью этой команды

PATH=c:\Rtools\bin;c:\Rtools\gcc-4.6.3\bin;c:\Program Files\R\R-3.2.2\bin\i386; 

Тогда Заново системы

Перед вызовом кода C в РИ должны скомпилировать код C в CMD. Я пишу следующую команду, чтобы изменить каталог, в котором WORLD.C сохраняется

cd C:\Users\TurboC4\TC\BIN 

, который является успешным, но когда я пытаюсь скомпилировать

C:\Users\TurboC4\TC\BIN> R CMD SHLIB WORLD.c 

я получаю следующее сообщение об ошибке. «R» не распознается как внутренняя или внешняя команда, работающая ». Я также попытался скомпилировать WORLD.C в C и получил эти две ошибки. «Невозможно открыть #include R.h>» и «функция Rprintf должна иметь прототип».

Окружающая среда - проблема Я думаю, что здесь я столкнулся с проблемой. Я проверил, что Rtools33.exe совместим с R 3.2.x и более поздними версиями. Но я получаю ту же ошибку в CMD. Я пробовал разные среды путей и пробовал его с различными версиями R, такими как R-3.2.2, R-3.2.0, 2.15.3, 2.15.0. Но когда я пишу

«install.packages (» RTools33") в любом из этих R-версии, я получил следующее предупреждение

Warning in install.packages :package ‘RTools33’ is not available (for R version  
2.15.0)" 

Причина использования различных Rs, когда вы загружаете папку RTOOLS там версия файла, который говорит, что «Rtools Collection 3.3.0.1959». Так что я думаю, может быть, это проблема совместимости.

есть некоторые инструкции по Github странице https://github.com/stan-dev/rstan/wiki/Install-Rtools-for-Windows «для установки Rtools, необходимо внимание быть оплачена на этапе где мы можем редактировать систему PATH, чтобы компилятор C++, который включен в Rtools, может использоваться R. Как указано на следующем шаге, нам нужно проверить этот параметр (не вручную отредактировать систему PATH. После проверки опции система PATH будет отредактирована для включения важных папок Rtools в процессе установки)."

Итак, я удалил RTools и пока переустановка я проверил эту опцию, а затем повторен, но все в вене.

Я проверил Sys.getenv („PATH“) и получил

c:\\\\\\\\Rtools\\\\\\\\gcc-4.6.3\\\\\\\\bin;c:\\\\\\\\RTools\\\\\\\\bin; 

Я также попытался, установив этот путь в управления pannel-> useraccountandfamilysafety-> Useraccounts-> изменить мой
переменную окружения , а затем создать новую переменную с выше PATH. Я до сих пор не в состоянии Dir ect R-C++. Может ли кто-нибудь понять, в чем моя ошибка?

+0

спасибо Anoop LL –

ответ

-1

Эта проблема решена. Была небольшая ошибка при определении переменной окружения. Правильное определение выглядит следующим образом.

c:\Rtools\bin;c:\Rtools\gcc-4.6.3\bin;c:\Program Files\R\R-3.2.2\bin\i386;