Я пишу пакет R и пытаюсь включить некоторые из функций Набор инструментов Shogun для машинного обучения. Я сначала включил папка сёгуна который содержит функции C ++ в /inst/include/
папка. Затем я добавил следующие утверждения в мой 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.
Что я делаю неправильно?
Вы пытаетесь создать только заголовочный пакет из библиотеки, которая не только заголовок.
То есть в /inst/include/
у вас есть смесь .h
а также .cpp
, Чтобы исправить это, вы должны только сохранить .h
файлы в /inst/include/
, Храните копию .h
а также .cpp
вместе файлы в /src
,
Лучший пакет для моделирования вашего пакета после RcppMLPACK1
с его использованием inst/include/
, src/
, определение менеджера плагинов, а также связывание плюс флаги cxx.
Однако вы можете просто захотеть создать пакет, который ссылается на системные библиотеки. например RcppMLPACK2
. Этот пакет использует configure.ac
, который хозяин autoconf
чтобы генерировать configure
чтобы обеспечить наличие необходимых путей. Примечание о расширениях autoconf
в m4
каталог
Других решений пока нет …