[英]Rcpp: Trouble with linking to Shogun C++ files
我正在编写一个R包,并试图包括用于机器学习的Shogun工具箱的某些功能。 我首先在/inst/include/
文件夹中包含了shogun文件夹 ,其中包含C ++函数。 然后,将以下语句添加到我的Makevars
和Makevars.win
文件中:
PKG_CPPFLAGS = -I../inst/include/
然后,我尝试了一个测试,因此将其放置在/src
test.cpp
文件中,该文件包括以下内容:
#include <shogun/lib/config.h>
我得到错误: test.cpp: fatal error: shogun/lib/config.h: No such file or directory compilation terminated.
我究竟做错了什么?
您试图从不是仅标头的库中创建仅标头的程序包。
也就是说,在/inst/include/
您混合使用.h
和.cpp
。 要解决此问题,您应该仅将.h
文件保留在/inst/include/
。 将.h
和.cpp
文件的副本保留在/src
。
最好使用RcppMLPACK1
来建模的软件包是RcppMLPACK1
,它使用inst/include/
, src/
, 插件管理器定义以及链接加cxx标志 。
但是,您可能只想创建一个链接到系统库的程序包。 例如RcppMLPACK2
。 该软件包使用configure.ac
,它是主autoconf
来生成configure
以确保存在必要的路径。 注意在m4
目录中对autoconf
的扩展
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.