作者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/m.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