Dear all, I'm trying to write some efficient code for analyzing sequencing data in R. To do this I would like to use the C library samtools. I've created a package where the src directory looks like this:
src |-- Makevars |-- RcppExports.cpp |-- mysourcecode.cpp `-- samtools |-- all *.c and *.h files as well as an independent Makefile My Makevars file looks like this: PKG_CPPFLAGS = -Isamtools PKG_LIBS = `$(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()"` PKG_LIBS += -Lsamtools -lbam -lz -lpthread $(SHLIB): samtools/libbam.a samtools/libbam.a: @(cd samtools-0.1.19 && $(MAKE) libbam.a \ CC="$(CC)" CFLAGS="$(CFLAGS) $(CPICFLAGS)" AR="$(AR)" RANLIB="$(RANLIB)") Everything compiles and I get my cpp functions in R, however I am getting some weird segfaults, I think they are due to memory allocation, but it's hard for me to track them. Especially now, these errors are showing up not immediately, but at the second time that I call a Rcpp function. I wanted to ask the following: 1. Is it the right way of using external C libraries? I couldn't find much documentation around 2. The C library uses malloc and free, and so do I (as little as possible, just to interface with the library), is this mechanism clashing against Rcpp/R memory management? Could it happen, for instance, that R tries to free allocated memory that I already manually freed myself? In general I didn't understand much about memory allocation in Rcpp and I couldn't find many resources talking about it. Is there anything R- or Rcpp-specific that I have to keep in mind or should I program as if I were programming in C/C++? Thanks a lot! -- Alessandro Mammana, PhD Student Max Planck Institute for Molecular Genetics Ihnestraße 63-73 D-14195 Berlin, Germany _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel