看板 R_Language 關於我們 聯絡資訊
[問題類型]: 製作 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
celestialgod: .c檔案沒有function output出去? 08/02 23:24
celestialgod: 可能要看一下你的.c檔案怎麼寫 08/02 23:25
celestialgod: 有沒有用SEXP 08/02 23:25
kk741852963: 我是用 .C() 呼叫 C function 的 08/03 00:09
kk741852963: 所以C function 是用 void 寫的http://r-pkgs.had.co 08/03 00:09
kk741852963: .nz/src.html參考這篇 08/03 00:09
kk741852963: http://r-pkgs.had.co.nz/src.html參考這篇 08/03 00:11
kk741852963: http://r-pkgs.had.co.nz/src.html 參考這篇 08/03 00:11
celestialgod: 所以你有用R_RegisterCCallable 或是 08/03 00:12
celestialgod: useDynLib(test2,chanmat) 08/03 00:13
celestialgod: 看了一下Exporting C code那裏 08/03 00:13
celestialgod: 感覺要註冊才行 08/03 00:13
celestialgod: 如data.table一樣:https://goo.gl/nFpVMB 08/03 00:14
celestialgod: 因為我都直接用Rcpp處理,所以只能猜測 08/03 00:15
celestialgod: 看看有沒有其他板友能回答你 08/03 00:15
clickhere: 和export無關.你在R中,用了.C/.Call叫了 chanmat 這個C 08/03 10:26
clickhere: 函數,但它並沒有被編在test2.dll中. 08/03 10:27
clickhere: 你需要有個 .c 的檔案中有 void chanmat(...){...} 之 08/03 10:28
kk741852963: 我再試試看,謝謝各位 08/03 19:17