[Rcpp-devel] Using Rcpp without R in a main() function
Josh.Bowden at csiro.au
Josh.Bowden at csiro.au
Wed Nov 7 10:12:23 CET 2012
Hi,
I am trying to test some code and in doing so I want to call the code from a main() function. The test code is as follows:
#include <Rinternals.h>
#include <Rcpp.h>
#include <iostream>
#include <fstream>
int main(int argc, char* argv[])
{
Int arraySize = 1689 ;
// read in the test data
// Rcpp::NumericVector Avec(arraySize * arraySize) ; // code fails here on initialisation
std::vector<double> Amat(arraySize * arraySize) ;
std::ifstream arrayData("/home/array.bin", std::ios::in | std::ios::binary); // File Open
if(!arrayData){Rcpp::Rcout << "ERROR";exit(1);}
for(int t1=0; t1 < arraySize; t1++)
{
for(int t2=0; t2 < arraySize; t2++)
{
// arrayData << Amat(t1,t2) << "\t" ;
double tdouble ;
arrayData.read((char*) &tdouble, sizeof(double) ) ; //Reads array from binary file
Amat[t1 * arraySize + t2] = tdouble ;
}
}
arrayData.close() ;
Rcpp::NumericVector xx(arraySize * arraySize); // or code fails here on initialisation
return 0 ;
}
I compile using the following:
icpc -I/apps/R/2.15.1/lib64/R/include -I"/home/bow355/R/library/Rcpp/include" -O0 -g -fp-model precise main.cpp -L/home/bow355/R/library/Rcpp/lib -lRcpp
When I run the executable it seg faults at the initialisation of Rcpp::NumericVector objects.
I have tested the function body with inline and it compiles and runs perfectly.
Is there something I should specify so that the Rcpp library objects initialise correctly?
Thanks a lot for any feedback,
Josh
More information about the Rcpp-devel
mailing list