我正在写一个R包,我试图包含Shogun toolbox for machine learning的一些功能。我首先在/inst/include/
文件夹中包含了shogun folder,其中包含C ++函数。然后,我将以下语句添加到我的Makevars
和Makevars.win
文件中:
PKG_CPPFLAGS = -I../inst/include/
然后我在名为test.cpp
的文件中尝试了测试,我将其放在/src
中,其中包含以下内容:
#include <shogun/lib/config.h>
我收到错误:test.cpp: fatal error: shogun/lib/config.h: No such file or directory
compilation terminated.
我做错了什么?
答案 0 :(得分:2)
您正在尝试仅从不标头的库中创建仅包含标头的包。
也就是说,在/inst/include/
中,您混合了.h
和.cpp
。要解决此问题,您应该只保留.h
中的/inst/include/
个文件。在.h
中保留.cpp
和/src
个文件的副本。
使用RcppMLPACK1
,inst/include/
,src/
和plugin manager definition后linking plus cxx flags建模您的包的最佳方案。
但是,您可能只想创建一个链接到系统库的包。例如RcppMLPACK2
。此程序包使用configure.ac
,即生成autoconf
的主configure
,以确保存在必要的路径。请注意m4
directory
autoconf
的附加信息