0

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

首先,我尝试按照参考手册中的说明编译一个普通的 .cpp 文件,效果很好

g++ example.cpp -I./include/HDFql ./HDFql/libHDFql.a -fopenmp -ldl

其中./include/HDFql文件夹包含头文件并且./HDFql/libHDFql.a是静态库。

然后我尝试在 Rcpp 包中做同样的事情。我的包目录结构是

|- 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. 运行devtools::document()产量

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

我根本不明白。谁能解释这里发生了什么?

编辑 Github 存储库的链接

4

0 回答 0