【问题标题】:Creating package that uses RcppArmadillo创建使用 RcppArmadillo 的包
【发布时间】:2012-03-06 04:34:29
【问题描述】:

我已经使用 RcppArmadillo 和内联包编写了函数,我使用的是 windows 7,安装了 R-2.14.1 和 Rtools215 并检查了路径。

funs = cxxfunction(list(MHcpp = signature(…), IWcpp = signature(…),  c(code1,code2), 
plugin="RcppArmadillo" ) # No compline and I they work fine as expected.

Package.skeleton(“new”,funs) # to create the package skeleton and the dynamic libray
# to build the package  I use
R CMD INSTALL –build new # I get the following error
C:/Users/samuel/Documents/R/win-library/2.14/Rcpp/lib/i386/libRcpp.a(Dimension.o
):Dimension.cpp:(.text+0x342): undefined reference to `_Unwind_SjLj_Unregister'
…………………………………………………………..
…………………………………………………………….
C:/Users/samuel/Documents/R/win-library/2.14/Rcpp/lib/i386/libRcpp.a(Environment
.o):Environment.cpp:(.text$_ZN4Rcpp11no_such_envC1Ei[Rcpp::no_such_env::no_such_
env(int)]+0x3fc): undefined reference to `_Unwind_SjLj_Unregister'
C:/Users/samuel/Documents/R/win-library/2.14/Rcpp/lib/i386/libRcpp.a(Environment
.o):Environment.cpp:(.text$_ZN4Rcpp11no_such_envC1Ei[Rcpp::no_such_env::no_such_
env(int)]+0x644): undefined reference to `_Unwind_SjLj_Resume'
collect2: ld returned 1 exit status
ERROR: compilation failed for package 'new'
* removing 'C:/Users/samuel/Documents/R/win-library/2.14/new'

关于如何解决问题的任何建议。

【问题讨论】:

    标签: r inline rcpp armadillo


    【解决方案1】:

    您需要使用 Rcpp 提供的 package.skeleton 变体,或者在本例中为 RcppArmadillo。也就是调用

     RcppArmadillo.package.skeleton(...)
    

    不是来自基础 R 的那个。

    您还可以查看依赖于 RcppArmadillo 的其他 CRAN 包的组织方式并比较差异。

    【讨论】:

    • 我尝试使用 RcppArmadillo.package.skeleton(“new”,funs),它创建了包含 MHcpp 和 IWcpp 函数的目录和 new.cpp 文件。然后我检查了是否可以安装“新”包“Rcmd 检查新”这就是我得到的。 * 检查文件 'new/DESCRIPTION' ... OK * 检查包命名空间信息 ... OK * 检查包依赖关系 ... OK * 检查这是否是源包 ... OK * 检查是否有命名空间。 .. OK * 检查可执行文件 ... OK * 检查是否可以安装包'new' ...错误安装失败。我错过了什么?谢谢
    • 感谢 Dirk,问题已解决。我正在使用 Rtools213,删除旧版本然后安装新的“Rtools215”解决了这个问题。感谢您提供帮助。 RcppArmadillo 是一个很棒的包,它使我的代码速度提高了 70% 以上。
    猜你喜欢
    • 1970-01-01
    • 2022-12-14
    • 2016-01-28
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 1970-01-01
    • 2019-03-30
    相关资源
    最近更新 更多