这是我的第一个stackoverflow问题,所以请善待,伙计们!
我非常喜欢我最近发现的使用devtools构建R包的能力.但是,一旦我尝试构建一个使用RcppArmadillo的包,我运行devtools :: document(),devtools :: check()和devtools :: build()的工作流程就不再有效了.
例如,我有一个(希望非常简单+完整)测试版本的软件包我试图在这里开发:https://github.com/suztolwinskiward/fooR/.fooR只包含一个函数,它是fields包中rdist.earth函数的C++实现.
运行devtools :: document("fooR")会抛出大量的消息(有些消息指向不存在于我的源代码中的变量的"未定义引用",这些变量对我来说是不可解释的,然后失败:
collect2: ld returned 1 exit status
no DLL was created
ERROR: compilation failed for package 'fooR'
* removing 'C:/Users/I53794/AppData/Local/Temp/RtmpWgC8nD/devtools_install_1ea473123086/fooR'
Error: Command failed (1)
Run Code Online (Sandbox Code Playgroud)
另一方面,当我获取依赖于RcppArmadillo的C++函数时,它似乎运行得很好:
> Rcpp::sourceCpp('./src/rdist_earth_cpp.cpp')
> data('miami')
> data('new_orleans','katrina_path')
> rdist_earth_cpp(katrina_path,new_orleans)
[,1]
[1,] 1042.36073
[2,] 998.96793
[3,] 957.69315
[4,] 917.91486
[5,] 868.07791
[6,] 805.73485
[7,] 763.01476
[8,] 726.10133
[9,] 692.14482
[10,] 670.15133
[11,] 662.23353
[12,] 625.55592
[13,] 601.08682
[14,] 579.73940
[15,] 560.32660
[16,] …Run Code Online (Sandbox Code Playgroud)