[問題] 製作R呼叫C function的package

看板R_Language作者 (kk741852963tw)時間6年前 (2017/08/02 23:12), 編輯推噓0(0019)
留言19則, 3人參與, 最新討論串1/1
[問題類型]: 製作 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://www.ptt.cc/bbs/R_Language/M.1501686743.A.466.html

08/02 23:24, , 1F
.c檔案沒有function output出去?
08/02 23:24, 1F

08/02 23:25, , 2F
可能要看一下你的.c檔案怎麼寫
08/02 23:25, 2F

08/02 23:25, , 3F
有沒有用SEXP
08/02 23:25, 3F

08/03 00:09, , 4F
我是用 .C() 呼叫 C function 的
08/03 00:09, 4F

08/03 00:09, , 5F
所以C function 是用 void 寫的http://r-pkgs.had.co
08/03 00:09, 5F

08/03 00:09, , 6F
.nz/src.html參考這篇
08/03 00:09, 6F

08/03 00:11, , 7F
08/03 00:11, 7F

08/03 00:11, , 8F
08/03 00:11, 8F

08/03 00:12, , 9F
所以你有用R_RegisterCCallable 或是
08/03 00:12, 9F

08/03 00:13, , 10F
useDynLib(test2,chanmat)
08/03 00:13, 10F

08/03 00:13, , 11F
看了一下Exporting C code那裏
08/03 00:13, 11F

08/03 00:13, , 12F
感覺要註冊才行
08/03 00:13, 12F

08/03 00:14, , 13F
如data.table一樣:https://goo.gl/nFpVMB
08/03 00:14, 13F

08/03 00:15, , 14F
因為我都直接用Rcpp處理,所以只能猜測
08/03 00:15, 14F

08/03 00:15, , 15F
看看有沒有其他板友能回答你
08/03 00:15, 15F

08/03 10:26, , 16F
和export無關.你在R中,用了.C/.Call叫了 chanmat 這個C
08/03 10:26, 16F

08/03 10:27, , 17F
函數,但它並沒有被編在test2.dll中.
08/03 10:27, 17F

08/03 10:28, , 18F
你需要有個 .c 的檔案中有 void chanmat(...){...} 之
08/03 10:28, 18F

08/03 19:17, , 19F
我再試試看,謝謝各位
08/03 19:17, 19F
文章代碼(AID): #1PWUlNHc (R_Language)