基本的にはRStan Getting Started (Japanese) · stan-dev/rstan Wiki · GitHubに従っていけた。
環境
- Windows 10 Pro
- R: 3.3.1
- RStudio: 0.99.903
Rtoolsのインストール
- Building R for WindowsよりRtools34.exeをダウンロード。
- セットアップ中、"Edit the system PATH"にチェック。
Makevarsファイルを作成するため、次のコードをRから実行。
dotR <- file.path(Sys.getenv("HOME"), ".R") if (!file.exists(dotR)) dir.create(dotR) M <- file.path(dotR, "Makevars") if (!file.exists(M)) file.create(M) cat("\nCXXFLAGS=-O3 -mtune=native -march=native -Wno-unused-variable -Wno-unused-function", file = M, sep = "\n", append = TRUE)
RStanのインストール
以下のコードをRから実行。
Sys.setenv(MAKEFLAGS = "-j4") install.packages('rstan', repos = 'https://cloud.r-project.org/', dependencies = TRUE)
インストール完了後、Rを再起動。
C++が動くかどうかの確認
fx <- inline::cxxfunction( signature(x = "integer", y = "numeric" ) , ' return ScalarReal( INTEGER(x)[0] * REAL(y)[0] ) ; ') fx( 2L, 5 ) # => 10
最初"cygheap base mismatch detected"が出たので、cygwin1.dllで検索してRtoolsに入っていたもの以外をリネームした(gnupackに入っていた)。
また、「もしg++のバージョンが4.9かそれ以降ならば...」に続くコードを実行してしまうと"Cannot export __gnu_lto_v1: symbol not defined"というようなエラーが出た。Makevarsファイルから該当箇所を削除したら直った(cf.Google グループ)