RInside の例を実行して動作させましたが、リンカ オプション「-F/Library/Frameworks/R.framework/.. -framework R」を g++ の最後に手動で追加する必要がありました (Mac Snow Leopard 10.6.8 の場合)。 Xcode 3.x で)。動作しますが、理由はわかりません。これらのオプションが実際に何をするのか、誰にも言えますか? このリストには見つかりませんでした: http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html
元のコードは次のとおりです。
#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);
}
NetBeans で見たリンカ呼び出しを次に示します。
g++ -o dist/Debug/GNU-MacOSX/callingrproject build/Debug/GNU-MacOSX/main.o - L/Library/Frameworks/R.framework/Resources/lib -L/Library/Frameworks/R.framework/Resources/ library/Rcpp/lib -L/Library/Frameworks/R.framework/Resources/library/RInside/lib -L/Library/Frameworks/R.framework/Libraries -L/Library/Frameworks/R.framework/Resources/lib - L/Library/Frameworks/R.framework/Resources/library -L/Library/Frameworks/R.framework/Resources/modules -lRcpp -lRInside -lRlapack -lRblas -F/Library/Frameworks/R.framework/.. -framework R
最後の部分は、手動で追加する必要があったものです。それがなければ、次の 2 つのリンケージ エラーが発生しました。
Undefined symbols:
"_Rf_mkString", referenced from:
Rcpp::wrap(char const*)in main.o
"_R_NilValue", referenced from:
Rcpp::wrap(char const*)in main.o