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