2010-07-25 17 views
5

बाद मैं सफलतापूर्वक एक नया Rcpp मॉड्यूलआरसीपीपी को नया मॉड्यूल कैसे ढूंढें?

पत्र में निर्देशों का पालन

("Rcpp मॉड्यूल, एक प्रकार की कटार Eddelbuettel रोमेन फ्रेंकोइस साथ उजागर सी ++ कार्य करता है और कक्षाएं" से उदाहरण) संकलित,

require(Rcpp) 
yada <- Module("yada") 

आर शिकायत की त्रुटियों के बारे में:

Error in FUN("_rcpp_module_boot_yada"[[1L]], ...) : 
    no such symbol _rcpp_module_boot_yada in package .GlobalEnv 

मैं डालने की कोशिश की '' dyn.load ("/ path// yada.dll के लिए") '' '' मॉड्यूल ("बेकार") '' को कॉल, अब भी वही त्रुटि से पहले।

आरसीपीपी मॉड्यूल ऑनलाइन के बारे में बहुत कम जानकारी है। क्या कोई समस्या को हल करने के बारे में जानता है? क्या मुझे कुछ विनिर्देशक फ़ोल्डर में संकलित मॉड्यूल डीएलएल रखना चाहिए?

उदाहरण कोड:

const char* hello(std::string who){ 
    std::string result("hello ") ; 
    result += who ; 
    return result.c_str() ; 
} 

RCPP_MODULE(yada){ 
    using namespace Rcpp ; 
    function("hello", &hello) ; 
} 

उत्तर

2

बाहरी पुस्तकालय ("yada.dll") से मॉड्यूल लोड करने के लिए, आप मॉड्यूल के लिए पैकेज तर्क प्रदान करनी चाहिए() फ़ंक्शन:

yada <- Module("yada", PACKAGE = "yada") 

पूर्ण उदाहरण लग इस प्रकार है (लिनक्स के तहत परीक्षण किया है, मुझे लगता है कि यह विंडोज के अंतर्गत अनुरूप काम करता है):

सी ++:

#include <Rcpp.h> 

const char* hello(std::string who){ 
    std::string result("hello ") ; 
    result += who ; 
    return result.c_str() ; 
} 

RCPP_MODULE(yada){ 
    using namespace Rcpp ; 
    function("hello", &hello) ; 
} 

आर:

require(Rcpp) 
dyn.load("yada.so") 
yada <- Module("yada", PACKAGE = "yada") 
yada$hello("world") 
+1

मैं सिर्फ 'मिल> मॉड्यूल (" बेकार "," बेकार ") शुरू नहीं किए गए मॉड्यूल पैकेज से" बेकार "नाम" बेकार " > is.loaded (" बेकार ") [1] गलत ' – highBandWidth

संबंधित मुद्दे