5

重複の可能性:
Rcpp でサードパーティのヘッダー ファイルを使用する

注: これは、ここから始まった議論の続きです: Using third party header files with Rcpp。しかし、質問は十分に異なっているので、それを独自の質問として提起すると思いました.

R パッケージにある cpp ファイルで呼び出したいcoolStuff.h関数を含むヘッダー ファイルが呼び出されました。awesomeSauce(arg1)

パッケージ構造:

  • パッケージ名

    • 説明
    • [男]

    • 名前空間

    • R
      • someRscript.R
    • ソース
      • theCppFile.cpp
      • otherCppFile.cpp

CppFile.cpp のコード:

`#include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp::export]]
double someFunctionCpp(double someInput){

 double someOutput = awesomeSauce(someInput);

return someOutput;`

coolStuff.h1)パッケージがビルドされ、cpp ファイルがコンパイルされるときに、coolStuff.h のコードが含まれるように、パッケージ ディレクトリ構造のどこに配置する必要がありますか。

2) でこのファイルをどのように呼び出す必要がありcoolStuff.hますか?

otherCppFile.cpp3) 同様に、theCppFile.cppどこに電話をかけたい場合

ご協力いただきありがとうございます。最後の会話から多くのことを学びました。これに関する標準的なドキュメントがどこかにある場合は、RTFM に喜んで対応します。正しい方向に向けてください。

4

1 に答える 1

4

Rcpp を使用したパッケージのビルドに専念するビネット全体があり、はい、それを見る必要があります。

Rcpp 属性は、すばやく簡単なことには確かに優れていますが、パッケージに依存していても、RcppArmadillo パッケージによって提供されるインライン プラグインがなければ、たとえば RcppArmadillo で Depends: を実行できませんでした。

要するに、はい、細かいマニュアルを読んだり、(現在) Rcpp を使用し、それに依存している CRAN の 95 個のパッケージを調べたりしてください。

編集: ここに1つの可能なショートカットがあります:coolStuff.hソースと同じディレクトリでそれを使用することで取得できる単なるヘッダー(したがって外部ライブラリへのリンクはありません)。sourceCpp()これは、迅速な探索に役立ちます。しかし、パッケージに対してはまだ追加の手順を実行する必要がありますが、それらの一部でさえ自動化されています--- Rcpp 属性のビネットを参照してください。

編集 2 : 前の質問を読み直しました。この新しい質問は意味がなく、何も追加しません。前回お伝えしたことを読んで理解しましたか?

于 2013-01-10T22:25:55.457 に答える