Fatal error for

前端 未结 2 1092
被撕碎了的回忆
被撕碎了的回忆 2021-01-26 16:39

I am running this example, through terminal. But got fatal error: RInside.h: No such file or directory error for the the line, #include

相关标签:
2条回答
  • 2021-01-26 17:04

    The GNUmakefile shipped with RInside in the examples folder includes things like:

    ## comment this out if you need a different version of R, 
    ## and set set R_HOME accordingly as an environment variable
    R_HOME :=       $(shell R RHOME)
    
    [...]
    ## include headers and libraries for R 
    RCPPFLAGS :=        $(shell $(R_HOME)/bin/R CMD config --cppflags)
    RLDFLAGS :=         $(shell $(R_HOME)/bin/R CMD config --ldflags)
    RBLAS :=        $(shell $(R_HOME)/bin/R CMD config BLAS_LIBS)
    RLAPACK :=      $(shell $(R_HOME)/bin/R CMD config LAPACK_LIBS)
    
    ## if you need to set an rpath to R itself, also uncomment
    #RRPATH :=      -Wl,-rpath,$(R_HOME)/lib
    
    ## include headers and libraries for Rcpp interface classes
    ## note that RCPPLIBS will be empty with Rcpp (>= 0.11.0) and can be omitted
    RCPPINCL :=         $(shell echo 'Rcpp:::CxxFlags()' | $(R_HOME)/bin/R --vanilla --slave)
    RCPPLIBS :=         $(shell echo 'Rcpp:::LdFlags()'  | $(R_HOME)/bin/R --vanilla --slave)
    
    
    ## include headers and libraries for RInside embedding classes
    RINSIDEINCL :=      $(shell echo 'RInside:::CxxFlags()' | $(R_HOME)/bin/R --vanilla --slave)
    RINSIDELIBS :=      $(shell echo 'RInside:::LdFlags()'  | $(R_HOME)/bin/R --vanilla --slave)
    
    ## compiler etc settings used in default make rules
    CXX :=          $(shell $(R_HOME)/bin/R CMD config CXX)
    CPPFLAGS :=         -Wall $(shell $(R_HOME)/bin/R CMD config CPPFLAGS)
    CXXFLAGS :=         $(RCPPFLAGS) $(RCPPINCL) $(RINSIDEINCL) $(shell $(R_HOME)/bin/R CMD config CXXFLAGS)
    LDLIBS :=       $(RLDFLAGS) $(RRPATH) $(RBLAS) $(RLAPACK) $(RCPPLIBS) $(RINSIDELIBS)
    

    If you use GNU make, you can probably use this literally. Otherwise you will have to adapt it for your build environment. Please look at the provided examples for more details.

    0 讨论(0)
  • 2021-01-26 17:18

    You should specify the path of header file when compiling RInside with g++. There is a parameters list of g++ on Mac OS X (10.14.2 Mojave) for your reference, hope this help.

    g++ 
    -I/Library/Frameworks/R.framework/Versions/3.5/Resources/library/RInside/include \
    -I/Library/Frameworks/R.framework/Versions/3.5/Resources/library/Rcpp/include \
    -I/Library/Frameworks/R.framework/Versions/3.5/Resources/include \
    -L/Library/Frameworks/R.framework/Versions/3.5/Resources/lib \
    -L/Library/Frameworks/R.framework/Versions/3.5/Resources/library/RInside/lib \
    -lR -lRInside -O3 -o test helloworld_rinside.cpp
    

    source code of "helloworld_rinside.cpp", http://dirk.eddelbuettel.com/code/rinside.html

    // -*- mode: C++; c-indent-level: 4; c-basic-offset: 4;  tab-width: 8; -*-
    //
    // Simple example showing how to do the standard 'hello, world' using embedded R
    //
    // Copyright (C) 2009 Dirk Eddelbuettel
    // Copyright (C) 2010 Dirk Eddelbuettel and Romain Francois
    //
    // GPL'ed
    
    #include <RInside.h> // for the embedded R via RInside
    
    int main(int argc, char *argv[]) {
    
      RInside R(argc, argv); // create an embedded R instance
    
      R["txt"] = "Hello, world!\n"; // assign a char* (string) to 'txt'
    
      R.parseEvalQ("cat(txt)"); // eval the init string, ignoring any returns
    
      exit(0);
    }
    
    0 讨论(0)
提交回复
热议问题