If you're trying to compile this as a standalone application, I guess you have to link against both libRcpp and (a generated?) libR. Try R-exts; specifically, http://cran.r-project.org/doc/manuals/r-devel/R-exts.html#Compiling-against-the-R-library.
-Kevin On Sun, May 26, 2013 at 10:52 AM, Dirk Eddelbuettel <[email protected]> wrote: > > On 26 May 2013 at 10:23, Qing Xia wrote: > | Dear All, > | > | I tried to use NumericVector in class declaration, Eclipse could compile > the > | code, but could not run it (something to do with the R.dll). I tried > replacing > | NumericVector with vector<double> and it worked with no problem. I want > to use > | NumericVector so that I could use Rcpp sugar to compute the mean and > variance. > | Could it possibly I get it wrong that sugar only take NumericVector? > | > | I have configured Eclipse and I could ran the codes in the example folder > | perfectly. I've attached simplified version of my code. Any hints > please? I've > | been stuck on this. > > Well -- if you cannot get Eclipse to build your code, stop using Eclipse. > > Many of use just the command-line, or command-line in conjunction with an > editor like Emacs, others really like RStudio --- but you need to figure > this > out, or else you won't have a chance to set Eclipse up right. > > Dirk > > > | Thanks! > | > | Qing > | > | #include<Rcpp.h> > | using namespace Rcpp; > | > | class Stock{ > | private: > | NumericVector prices; > | NumericVector returns; > | void calcReturns(); > | public: > | void loadPricesFromFile(const char *symbol); > | NumericVector getReturns(unsigned); > | NumericVector getPrices(unsigned); > | double getMeanReturn(unsigned); > | double getReturnStdDev(unsigned); > | void plotHistory(unsigned); > | }; > | > | void Stock::calcReturns(){ > | for (int i=0;i<prices.size()-1;i++){ > | returns.push_back(log(prices[i]/prices[i+1])); > | } > | }; > | > | NumericVector Stock::getPrices(unsigned n){ > | NumericVector vec(n); > | for (int i=0;i<vec.size();i++){ > | vec.push_back(prices[i]); > | } > | return vec; > | } > | > | NumericVector Stock::getReturns(unsigned n){ > | NumericVector vec(n); > | for (int i=0;i<vec.size();i++){ > | vec.push_back(returns[i]); > | } > | return vec; > | } > | > | double Stock::getMeanReturn(unsigned n){ > | NumericVector vec(n); > | vec=getReturns(n); > | double m=mean(vec); > | return m; > | } > | > | double Stock::getReturnStdDev(unsigned n){ > | NumericVector vec(n); > | vec=getReturns(n); > | double m=var(vec); > | return m; > | } > | > | void Stock::plotHistory(unsigned n){ > | > | } > | > | void Stock::loadPricesFromFile(const char *symbol){ > | for (int i=0;i<1000;i++){ > | prices.push_back(1000-i); > | } > | calcReturns(); > | } > | > | int main(int argc,char *argv[]){ > | Stock stock; > | stock.loadPricesFromFile("MSFT"); > | double m,sd; > | unsigned num; > | std::cout<<"Please enter the number for computation:"; > | std::cin>>num; > | m=stock.getMeanReturn(num); > | sd=stock.getReturnStdDev(num); > | std::cout<<m<<"\t"<<sd<<std::endl; > | return 0; > | } > | > | ---------------------------------------------------------------------- > | _______________________________________________ > | Rcpp-devel mailing list > | [email protected] > | https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel > -- > Dirk Eddelbuettel | [email protected] | http://dirk.eddelbuettel.com > _______________________________________________ > Rcpp-devel mailing list > [email protected] > https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel > -- -Kevin
_______________________________________________ Rcpp-devel mailing list [email protected] https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
