私はR.でそれをロードし、使用できるように、CのソースコードからDLLの動的ライブラリを作成したい私は今(Windowsの場合)RでCからDLLの動的ライブラリを作成
R CMD SHLIB foo.c
を使用していますWindows 7のコマンドラインで。しかし、何も起こらなかった。エラーメッセージは表示されませんが、dllファイルは作成されませんでした。
私は何をしましたか?ありがとうございました。
私はR.でそれをロードし、使用できるように、CのソースコードからDLLの動的ライブラリを作成したい私は今(Windowsの場合)RでCからDLLの動的ライブラリを作成
R CMD SHLIB foo.c
を使用していますWindows 7のコマンドラインで。しかし、何も起こらなかった。エラーメッセージは表示されませんが、dllファイルは作成されませんでした。
私は何をしましたか?ありがとうございました。
私の質問があまり明確でない場合は申し訳ありません。しかし、私は物事を働かせる方法と可能性のある間違いを理解しました。うまくいけば、それは誰かのために便利です。手順は次のとおりです。
foo.cのWindowsのコマンドウィンドウでfoo.cの
に保存されたCコード、タイプ
R CMD SHLIBを書きます64bits Rで作成されたfoo.dllは64bits Rにしか読み込めないことに注意してください。32bits Rで読み込もうとすると、エラーメッセージが表示されます。
「何も起こっていません」とまったく何を意味していますか? Rはあなたのパスにありますか?
R --version
は何を示していますか? R CMD config CC
とR CMD config CFLAGS
はどうですか?
最後に、あなたは、LA
R> library(Rcpp)
R> cppFunction('double foo(double x) { return std::sqrt(x); }')
R> foo(4)
[1] 2
R> foo(4.2)
[1] 2.04939
R> unclass(foo)
function (x)
.Primitive(".Call")(<pointer: 0x7f251ba76530>, x)
R>
ここでは、
cppFunction()
を使用
(と飛んで物事を行うことができますRcppがインストールされていた(そして、あなたのツールチェインは、PATHの設定およびすべての残りの部分を含め、正しかった)場合コンパイル、リンク、ロードするために、平方根を取る単純な(そしてかなり役に立たない)C(++)関数 をコンパイル、トリックします。
[TDM-GCC](http://tdm-gcc.tdragon.net/)、[Cygwin](https://www.cygwin.com/)、[msysGit](https: //msysgit.github.io/)(netinstallのみ)、Rtoolsはうまく機能します! – DenisKolodin