Hi, all I didn't get any response from swig for my question. see if I can get some help here
Thanks ---------- Forwarded message ---------- From: charlie <[EMAIL PROTECTED]> Date: Tue, Nov 4, 2008 at 1:55 PM Subject: SWIG with R and C++ STL To: [EMAIL PROTECTED] Hi all, I am new to SWIG. I encountered some problem when I try to SWIG to R some C++ modules. Here is the details. I got "myvector.i" and "myvector.h" as my two input files, the contends are: ---myvector.i----- %module myvector %{ #include "myvector.h" %} %include "std_vector.i" namespace std { %template(IntVector) vector<int>; %template(DoubleVector) vector<double>; }; %include "myvector.h" ---------------------------------- --myvector.h------------------- /* File : example.h */ #include <vector> #include <algorithm> #include <functional> #include <numeric> double average(std::vector<int> v) { return std::accumulate(v.begin(),v.end(),0.0)/v.size(); } std::vector<double> half(const std::vector<double>& v) { std::vector<double> w(v); for (unsigned int i=0; i<w.size(); i++) w[i] /= 2.0; return w; } void halve_in_place(std::vector<double>& v) { std::transform(v.begin(),v.end(),v.begin(), std::bind2nd(std::divides<double>(),2.0)); } ------------------------------------- Basicly they are just examples from the SWIG doc. And I ran: *swig -c++ -r -o myvector_wrap.cpp myvector.i PKG_LIBS="myvector.h" R CMD SHLIB myvector_wrap.cpp* Then in R I ran: >*dyn.load("myvector.so")* >*source("myvector.R")* Then i tried to create a vector in R: >*vi=IntVector(4)* I go the following error: *Error in .Call("R_swig_new_IntVector__SWIG_2", size, PACKAGE="myvector"): C symbol name "R_swig_new_IntVector__SWIG_2" not in DLL for package "myvector"* Since I basicly followed the steps in the doc, I don't understand where the error comes from. Can anybody help me out? Thanks a lot! Charlie [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel