2011-07-30 16 views
1

g ++を使用してRInsideサンプルファイルをコンパイルしようとするとシンボルが見つかりませんというリンカーエラーが発生します。いかなる援助も感謝します。g ++ ldがx86_64アーキテクチャ用のRInsideシンボルを見つけることができません

Rバージョン2.13.1がMac OS X 10.5にインストールされています。 RcppとRInsideインクルードファイルは、usr/includeディレクトリにコピーされています。示されるようにRヘッダとライブラリは++ Gの-Iおよび-L改質剤を使用して含まれている:

$g++ -I/Library/Frameworks/R.framework/Headers -L/Library/Frameworks/R.framework/Libraries rinside_sample0.cpp 

rinside_sample0.cppファイルは、以下に示す、RInsideパッケージで提供されるサンプルである:

// -*- mode: C++; c-indent-level: 4; c-basic-offset: 4; tab-width: 8; -*- 
// 
// Simple example showing how to do the standard 'hello, world' using embedded R 
// 
// Copyright (C) 2009 Dirk Eddelbuettel 
// Copyright (C) 2010 Dirk Eddelbuettel and Romain Francois 
// 
// GPL'ed 

#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); 
} 

私はグラムでコンパイルしようとすると++、私は以下のようなエラー、取得:

ld: symbol(s) not found for architecture x86_64 

を誰かが私が間違っているとどのようにそれを修正するよ何を教えてもらえますか?いかなる援助も感謝します。

答えて

2

これは非常に古い質問ですが、他の人を助ける。

私は何時間も時間を費やしていました。私はMac OS(Mountain Lion 10.7)を持っています。 私はRInsideをダウンロードし、例に行き、makeとタイプしましたが、このままldエラーが発生しました。

xcodeの新しいインストールであるgcc as mentioned in this threadなど、数多くの試みが役に立たなかった。

RStudioを使用してRcppをインストールしました。

私はのために働いた。私のMacターミナル私は再インストールRcppとRInsideから ディルクが使用して上記のとおり:

R CMD INSTALL ./Downloads/Rcpp_0.10.3.tar.gz 
R CMD INSTALL ./Downloads/RInside_0.2.10.tar.gz 

を今、私はexamplesディレクトリに行って、makeを入力すると、それが滞りなく働きました。

これは、この質問を見るOS Xを使用している人を助けてくれることを願っています。

1

通常、ビルド対象アーキテクチャに適していないリンクライブラリと関係があります。フレームワークの設定を確認して、構築されているアーキテクチャを確認します(i386はx86_64よりも一般的です)。これは、libが32/64ビットの両方で構築されていないことを意味することもあります。あなたがソースにアクセスできる場合、それを再コンパイルすることを検討するかもしれません。

+0

フレームワークの設定を確認して、構築されているアーキテクチャを確認するにはどうすればよいですか? – Aperium

+0

シェルで試してみてください:file DIR/TO/Lib.a – namar0x0309

1

使用したコンパイラ(見かけ上64ビット)と見つかったライブラリ(明らかに32ビット)との間に不一致があり、リンクが失敗します。最も簡単な解決策は、ソースからRcppとRInsideの両方を再インストールすることです。コンパイラのファイルを再作成します(おそらく64ビット)。

通常の能力構築の証明は、eg this R-patched on Windows checkとしてCRANチェックによって提供され、win-builderにもアップロードすることができます。

rcpp-develリストは、いくつかのOS Xユーザーがそれを読んでいるので、これをさらに支援することができます。私はOS Xのソースからのビルドは推奨されている解決策であることを思い出しているようですが、OS Xで動作する私の共著者です:)

関連する問題