0

重複の可能性:
WindowsでのRInsideサンプルのコンパイルに関する問題

Windows XPの場合:

> sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: i386-pc-mingw32/i386 (32-bit)

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     
> 

私はDirkによって書かれた最も単純なプログラムをコンパイルしようとしました:

#include <RInside.h>                    // for the embedded R via RInside

int main(int argc, char *argv[]) {

    RInside R(argc, argv);              // create an embedded R instance

    R["txt"] = "Hello, world!\n";   // assign a char* (string) to 'txt'

    R.parseEvalQ("cat(txt)");           // eval the init string, ignoring any returns

    exit(0);
}

すべての環境変数PATHには、次のものが含まれています。
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\R\batchfiles_0.6-6;C:\R\Rtools\bin;C:\R\Rtools\MinGW\bin;C:\Program Files\GnuWin32;C:\"Program Files"\R\R-2.15.1\;

このMakefileは、WindowsXPのRInsideの既存のRの例からコピーしました。

## -*- mode: make; tab-width: 8; -*-
##
## Simple Makefile
##
## TODO: 
##  proper configure for non-Debian file locations,   [ Done ]
##  allow RHOME to be set for non-default R etc

## comment this out if you need a different version of R, 
## and set set R_HOME accordingly as an environment variable
R_HOME :=       C:\"Program Files"\R\R-2.15.1\

sources :=      $(wildcard *.cpp)
programs :=         $(sources:.cpp=)


## include headers and libraries for R 
RCPPFLAGS :=        $(shell $(R_HOME)/bin/R CMD config --cppflags)
RLDFLAGS :=         $(shell $(R_HOME)/bin/R CMD config --ldflags)
RBLAS :=        $(shell $(R_HOME)/bin/R CMD config BLAS_LIBS)
RLAPACK :=      $(shell $(R_HOME)/bin/R CMD config LAPACK_LIBS)

## if you need to set an rpath to R itself, also uncomment
#RRPATH :=      -Wl,-rpath,$(R_HOME)/lib

## include headers and libraries for Rcpp interface classes
RCPPINCL :=         $(shell echo 'Rcpp:::CxxFlags()' | $(R_HOME)/bin/R --vanilla --slave)
RCPPLIBS :=         $(shell echo 'Rcpp:::LdFlags()'  | $(R_HOME)/bin/R --vanilla --slave)


## include headers and libraries for RInside embedding classes
RINSIDEINCL :=      $(shell echo 'RInside:::CxxFlags()' | $(R_HOME)/bin/R --vanilla --slave)
RINSIDELIBS :=      $(shell echo 'RInside:::LdFlags()'  | $(R_HOME)/bin/R --vanilla --slave)

## compiler etc settings used in default make rules
CXX :=          $(shell $(R_HOME)/bin/R CMD config CXX)
CPPFLAGS :=         -Wall $(shell $(R_HOME)/bin/R CMD config CPPFLAGS)
CXXFLAGS :=         $(RCPPFLAGS) $(RCPPINCL) $(RINSIDEINCL) $(shell $(R_HOME)/bin/R CMD config CXXFLAGS)
LDLIBS :=       $(RLDFLAGS) $(RRPATH) $(RBLAS) $(RLAPACK) $(RCPPLIBS) $(RINSIDELIBS)

all:            $(programs)
            @test -x /usr/bin/strip && strip $^

run:            $(programs)
            @for p in $(programs); do echo; echo "Running $$p:"; ./$$p; done

clean:
            rm -vf $(programs)
            rm -vrf *.dSYM

runAll:
            for p in $(programs); do echo "Running $$p"; ./$$p; done

これはCドライブの私のRフォルダです: ここに画像の説明を入力してください

このスレッドを見ましsite-libraryたが、Rフォルダーのようなものはありません。

をに変更したR_HOMEところC:\"Program Files"\R\R-2.15.1、次のエラーが発生しました。

ここに画像の説明を入力してください

4

2 に答える 2

3

Windows上のRのFAQに、スペースのあるパスにRをインストールしないように指示されC:\Program Files\Rていても、Rをインストールしたために失敗します。「質問2.2:RforWindowsをインストールするにはどうすればよいですか」を参照してください。

ソースからパッケージをビルドできるようにする場合は、スペースを含まないインストールパスを選択することをお勧めします。

Rcpp / RInsideのドキュメントは、その推奨事項を繰り返しています。スペースのあるパスにRをインストールしないでください。 必要に応じて、パス拡張が壊れないようにMakefileを修正する必要があります。

于 2012-10-17T12:27:50.827 に答える
1

あなたのパスは私にとって完全に間違っています:なぜあなたはあなたのRメインパスが単にであるかのように使うC:\R\Rtools\binのですか?Rフォルダーがスクリーンショットに表示されているものである場合、ところで、クラスパスも完全に間違っています。R_HOMEC:\R

于 2012-10-17T07:09:47.303 に答える