作者kk741852963 (kk741852963tw)
看板R_Language
标题[问题] 制作R呼叫C function的package
时间Wed Aug 2 23:12:20 2017
[问题类型]:
制作 R package 时出现错误
里面的 R function 会呼叫 C function
[软体熟悉度]:
学过一些 R 相关的应用, 对 C 语言有基本了解
第一次制作 R package
[问题叙述]
没有用到外部 package 里的 C function
/src 底下有
1. chanmat.h
2. 一些 .c 档以及各自的标头档
这些标头档都有 #include "chanmat.h"
namespace file 里已有 useDynLib(test2,chanmat)
在 build & reload 时出现以下错误讯息
http://imgur.com/6KNWZyp
小弟已上网 google 过, 但还是没解决QAQ
希望版上有高手能帮忙解惑
感谢!
[环境叙述]
OS:Windows10 家用版[10.0.14393]
R:3.4.1 (2017-06-30) -- "Single Candle" 32-bit
Rstudio:1.0.143
Rtools:3.4.0.1964
在64-bit下编译会有错误, 故用32-bit
--
Sent from my Windows
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 27.147.47.74
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/R_Language/M.1501686743.A.466.html
1F:→ celestialgod: .c档案没有function output出去? 08/02 23:24
2F:→ celestialgod: 可能要看一下你的.c档案怎麽写 08/02 23:25
3F:→ celestialgod: 有没有用SEXP 08/02 23:25
4F:→ kk741852963: 我是用 .C() 呼叫 C function 的 08/03 00:09
6F:→ kk741852963: .nz/src.html参考这篇 08/03 00:09
9F:→ celestialgod: 所以你有用R_RegisterCCallable 或是 08/03 00:12
10F:→ celestialgod: useDynLib(test2,chanmat) 08/03 00:13
11F:→ celestialgod: 看了一下Exporting C code那里 08/03 00:13
12F:→ celestialgod: 感觉要注册才行 08/03 00:13
14F:→ celestialgod: 因为我都直接用Rcpp处理,所以只能猜测 08/03 00:15
15F:→ celestialgod: 看看有没有其他板友能回答你 08/03 00:15
16F:→ clickhere: 和export无关.你在R中,用了.C/.Call叫了 chanmat 这个C 08/03 10:26
17F:→ clickhere: 函数,但它并没有被编在test2.dll中. 08/03 10:27
18F:→ clickhere: 你需要有个 .c 的档案中有 void chanmat(...){...} 之 08/03 10:28
19F:→ kk741852963: 我再试试看,谢谢各位 08/03 19:17