自动生成Makevars并配置文件

时间:2018-05-16 14:13:58

标签: c++ statistics rcpp rcpp11

朋友,

是否有自动生成Makevarsconfigure的方法?我使用带有 g ++ 编译器的bash终端编译我的C ++代码。

示例:我使用Rcpp.h库编写了以下代码,其中我使用gsl/gsl_sf_bessel.h头文件,即我使用外部的库RCPP

#include <Rcpp.h>
#include <gsl/gsl_sf_bessel.h>
using namespace Rcpp;

// [[Rcpp::export]]
double my_bessel(double x){
   return gsl_sf_bessel_J0 (x);
}

在上面的例子中,考虑到我的计算机的头文件的配置和路径,我可以使用下面的代码在bash终端编译上面的代码:

g++ -I"/usr/include/R/" -DNDEBUG -I"/home/pedro/R/x86_64-pc-linux-gnu-library/3.5/Rcpp/include" -I"/home/pedro/Dropbox/UFPB/Redes Neurais e Análise de Agrupamento/Rcpp" -D_FORTIFY_SOURCE=2  -fpic  -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt  -c program.cpp -o program.o
g++ -shared -L/usr/lib64/R/lib -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -o program.so program.o -L/usr/lib64/R/lib -L/usr/include/gsl -lR -lgsl -gslcblas -lm

根据我计算机上库的设置和路径,我可以使用上面的代码生成目标文件和.so文件。但是,正如我们所知,当函数在与包用户不同的机器上编译时,这些路径不一定有效。为此,有Makevarsconfigure个文件。

问题:有没有办法根据上面的构建语句自动创建Makevarsconfigure文件?

CXX=g++
CXXFLAGS +=`-O3 -Wall -pipe -Wno-unused -pedantic`
PKG_LIBS = `$(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()"`  
PKG_LIBS += `gsl-config --libs`

我使用上面的内容创建了Makevars文件。但是,我不确定是否有办法使用前面介绍的构建语句自动执行此操作。

0 个答案:

没有答案