2014-04-03 149 views
2

我在OS X 10.9.2上安装了带有mac端口的R 3.0.3。我使用sudo R CMD INSTALL〜/ Downloads/RInside_0.2.11.tgz(类似于Rcpp_0.11.1.tar)安装了RInside。我正在尝试从http://dirk.eddelbuettel.com/code/rinside.html编译一个简单的RInside帮助世界代码。我试图用Mac OS X上的RInside

g++ main.cpp -I/Users/robogos/Library/R/3.0/library/RInside/include/ -I/Users/robogos/Library/R/3.0/library/Rcpp/include/ -I/opt/local/Library/Frameworks/R.framework/Versions/3.0/Resources/include/ 

和我得到的错误的一个长长的清单:

Undefined symbols for architecture x86_64: 
    "_REprintf", referenced from: 
     Rcpp::Rstreambuf<false>::xsputn(char const*, long) in main-4b77b4.o 
     Rcpp::Rstreambuf<false>::overflow(int) in main-4b77b4.o 
    "_R_BindingIsLocked", referenced from: 
     Rcpp::Environment_Impl<Rcpp::PreserveStorage>::bindingIsLocked(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in main-4b77b4.o 
    "_R_FlushConsole", referenced from: 
     Rcpp::Rstreambuf<false>::sync() in main-4b77b4.o 
     Rcpp::Rstreambuf<true>::sync() in main-4b77b4.o 
    "_R_NilValue", referenced from: 
     Rcpp::wrap(char const*) in main-4b77b4.o 
    "_R_UnboundValue", referenced from: 
     Rcpp::Environment_Impl<Rcpp::PreserveStorage>::exists(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in main-4b77b4.o 
    "_Rf_defineVar", referenced from: 
     Rcpp::Environment_Impl<Rcpp::PreserveStorage>::assign(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, SEXPREC*) const in main-4b77b4.o 
    "_Rf_findVarInFrame", referenced from: 
     Rcpp::Environment_Impl<Rcpp::PreserveStorage>::exists(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in main-4b77b4.o 
    "_Rf_install", referenced from: 
     Rcpp::Environment_Impl<Rcpp::PreserveStorage>::assign(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, SEXPREC*) const in main-4b77b4.o 
     Rcpp::Environment_Impl<Rcpp::PreserveStorage>::exists(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in main-4b77b4.o 
     Rcpp::Environment_Impl<Rcpp::PreserveStorage>::bindingIsLocked(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in main-4b77b4.o 
    "_Rf_mkString", referenced from: 
     Rcpp::wrap(char const*) in main-4b77b4.o 
    "_Rprintf", referenced from: 
     Rcpp::Rstreambuf<true>::xsputn(char const*, long) in main-4b77b4.o 
     Rcpp::Rstreambuf<true>::overflow(int) in main-4b77b4.o 
    "RInside::parseEvalQ(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from: 
     _main in main-4b77b4.o 
    "RInside::RInside(int, char const* const*, bool, bool, bool)", referenced from: 
     _main in main-4b77b4.o 
    "RInside::~RInside()", referenced from: 
     _main in main-4b77b4.o 
    "RInside::operator[](std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from: 
     _main in main-4b77b4.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

我已经试了一下德克Eddelbuettel建议,但现在我得到:

Error in dyn.load(file, DLLpath = DLLpath, ...) : 
    unable to load shared object '/Library/Frameworks/R.framework/Versions/3.0/Resources/library/stats/libs/stats.so': 
    dlopen(/Library/Frameworks/R.framework/Versions/3.0/Resources/library/stats/libs/stats.so, 6): Symbol not found: __gfortran_pow_r8_i4 
    Referenced from: /Library/Frameworks/R.framework/Versions/3.0/Resources/lib/libRlapack.dylib 
    Expected in: /Applications/MATLAB_R2013a.app/sys/os/maci64//libgfortran.2.dylib 
in /Library/Frameworks/R.framework/Versions/3.0/Resources/lib/libRlapack.dylib 
During startup - Warning message: 
package ‘stats’ in options("defaultPackages") was not found 
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
    unable to load shared object '/Library/Frameworks/R.framework/Versions/3.0/Resources/library/stats/libs/stats.so': 
    dlopen(/Library/Frameworks/R.framework/Versions/3.0/Resources/library/stats/libs/stats.so, 6): Symbol not found: __gfortran_pow_r8_i4 
    Referenced from: /Library/Frameworks/R.framework/Versions/3.0/Resources/lib/libRlapack.dylib 
    Expected in: /Applications/MATLAB_R2013a.app/sys/os/maci64//libgfortran.2.dylib 
in /Library/Frameworks/R.framework/Versions/3.0/Resources/lib/libRlapack.dylib 
During startup - Warning message: 
package ‘stats’ in options("defaultPackages") was not found 
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
    unable to load shared object '/Library/Frameworks/R.framework/Versions/3.0/Resources/library/stats/libs/stats.so': 
    dlopen(/Library/Frameworks/R.framework/Versions/3.0/Resources/library/stats/libs/stats.so, 6): Symbol not found: __gfortran_pow_r8_i4 
    Referenced from: /Library/Frameworks/R.framework/Versions/3.0/Resources/lib/libRlapack.dylib 
    Expected in: /Applications/MATLAB_R2013a.app/sys/os/maci64//libgfortran.2.dylib 
in /Library/Frameworks/R.framework/Versions/3.0/Resources/lib/libRlapack.dylib 
During startup - Warning message: 
package ‘stats’ in options("defaultPackages") was not found 
Error in dyn.load(file, DLLpath = DLLpath, ...) : 
    unable to load shared object '/Library/Frameworks/R.framework/Versions/3.0/Resources/library/stats/libs/stats.so': 
    dlopen(/Library/Frameworks/R.framework/Versions/3.0/Resources/library/stats/libs/stats.so, 6): Symbol not found: __gfortran_pow_r8_i4 
    Referenced from: /Library/Frameworks/R.framework/Versions/3.0/Resources/lib/libRlapack.dylib 
    Expected in: /Applications/MATLAB_R2013a.app/sys/os/maci64//libgfortran.2.dylib 
in /Library/Frameworks/R.framework/Versions/3.0/Resources/lib/libRlapack.dylib 
During startup - Warning message: 
package ‘stats’ in options("defaultPackages") was not found 
make: Nothing to be done for `rinside_sample0.cpp'. 

我有看到建议像!unset DYLD_LIBRARY_PATH;,但我不知道如何做到这一点在我的情况。

+0

您是否从源代码构建了RInside?如果没有,请尝试。 –

+0

我已经从http://cran.r-project.org/web/packages/RInside/index.html下载并使用'R CMD INSTALL〜/ Downloads/RInside_0.2.11.tgz'进行安装。但是,R是使用Macports安装的。 – robogos

+0

通过'R CMD INSTALL RInside_0.2.11.tar.gz'安装_from source_。请注意'tar.gz'而不是'.tgz'。 –

回答

0

使用模式是

  • 光盘放入examples/standard/目录

  • 运行make

  • 或运行make rinside_sample0(或任何其他名称),如果你想建立只有一个。

您可以添加自己的文件,make nameofthefile将生成可执行文件。

总之,你不能像你那样打电话g++

+0

谢谢。我试过了,似乎也有一个不同的问题: – robogos

+1

@DirkEddelbuettel这样做会产生错误:'致命错误:'找不到RInside.h'文件'你知道如何解决这个问题吗? – warship

+0

@Dirk Eddelbuettel手动将所有必需的头文件放入适当的位置运行所有内容后,我的OSX 10.9 Mavericks上出现以下错误:'ld:symbol(s)not found for architecture x86_64'后面​​跟'clang:error :链接器命令失败,退出代码1(使用-v查看调用)'和make:*** [rinside_sample0] Error 1' – warship