Writing R Extension, Section 1.2を処理すると、いくつかのシェルスクリプトでこれを処理できるはずです。最小限の例として、(Linuxマシン上で作業)、私はRcpp::Rcpp.package.skeleton
から基本パッケージを作成し、プロジェクトのルートディレクトリに次の2つのファイルを置く:
のconfigure
#!/bin/bash
if [ ! -d "~/.R" ]; then
mkdir ~/.R; touch ~/.R/Makevars
echo "CXXFLAGS= -O3 -std=c++11 -Wall -mtune=core2" > ~/.R/Makevars
elif [ ! -e "~/.R/Makevars" ]; then
touch ~/.R/Makevars
echo "CXXFLAGS= -O3 -std=c++11 -Wall -mtune=core2" > ~/.R/Makevars
else
mv ~/.R/Makevars ~/.R/Makevars.bak_CustomConfig
echo "CXXFLAGS= -O3 -std=c++11 -Wall -mtune=core2" > ~/.R/Makevars
fi
クリーンアップ
#!/bin/bash
if [ -e "~/.R/Makevars.bak_CustomConfig" ]; then
mv -f ~/.R/Makevars.bak_CustomConfig ~/.R/Makevars
fi
とし、実行可能にしました(chmod 777 path/to/project/root/configure
とchmod 777 path/to/project/root/cleanup
)。
g++ -m64 -I/usr/include/R -DNDEBUG
-I/usr/local/include
-I"/home/nr07/R/x86_64-redhat-linux-gnu-library/3.2/Rcpp/include"
-fpic -O3 -std=c++11 -Wall -mtune=core2
-c rcpp_hello.cpp -o rcpp_hello.o
g++ -m64 -shared -L/usr/lib64/R/lib
-Wl,-z,relro -o CustomConfig.so RcppExports.o rcpp_hello.o
-L/usr/lib64/R/lib -lR
R Makevarsデフォルトをオーバーライドし、適切なオプションを使用する:私は(抜粋)を持って構築し、リロード走っ 。
あなたはおそらくカップルが自分の目標に応じて、さらなるステップを取るしたいと思うので、これは、単に基本的な例だった:
- などのUnix/Linuxの対(異なるプラットフォーム用のスクリプトを適応Windows/Windows 64-bit)は、私が信じているリンクされた記事で触れられています。
- あなたのマシンからファイルのパーミッションを設定することで、これらのファイルを別のコンピュータで実行するのに十分であることを確認してください(私はうまくいくと思いますが、完全には肯定的ではありません)。
Rcppの質問ではありません(但し、ジェネリックRパッケージのコンパイルに関する質問はありません)。以前はいくつかの機会に回答していました。 'src/Makevars'や'〜/ .R/Makevars'を使ってください。 –