在Rcpp中编译时出现冲突的声明错误,但g ++工作正常

时间:2018-04-12 22:54:22

标签: r rcpp hdfql

我正在尝试编译依赖于外部库HDFql的Rcpp包。

首先,我尝试按照reference manual中的说明编译一个普通的.cpp文件,工作正常

n

其中g++ example.cpp -I./include/HDFql ./HDFql/libHDFql.a -fopenmp -ldl 文件夹包含头文件,./include/HDFql是静态库。

然后我尝试在Rcpp包中执行等效操作。我的包目录结构是

./HDFql/libHDFql.a

|- R |- script. r |- src |- HDFql |- libHDFql.a |- example.cpp |- Makevars |-inst |- include |- HDFql |- ... header files... 的内容是

Makevars

我还将PKG_CPPFLAGS = -I../inst/include/HDFql/ PKG_LIBS = ./HDFql/libHDFql.a LDLIBS = -fopenmp -ldl 添加到#include <Rcpp.h>。运行example.cpp会产生

  

../ inst / include / HDFql / H5public.h:156:19:错误:冲突声明'typedef long long int ssize_t'    typedef long long ssize_t;

我根本不懂。谁能解释一下这里发生了什么?

编辑 link to Github repository

0 个答案:

没有答案