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 каталог

Другие вопросы по тегам