Как написать расширение R с использованием статической библиотеки - PullRequest
2 голосов
/ 22 июня 2011

Привет. Я пытаюсь собрать пакет R, используя предварительно скомпилированную статическую библиотеку и один заголовочный файл. Каков наилучший способ сделать это?

Поскольку я не нашел никакой информации об этом (только при создании пакетов R, которые компилируются из src), я остановился на написании тонкого класса оболочки C ++ в каталоге расширения src. Я также добавил один заголовочный файл, который мне нужен для библиотеки, в каталог src, и теперь теоретически могу связываться с библиотекой на моем компьютере (я считаю). Однако я хотел бы отправить эту статическую библиотеку вместе с моим пакетом, что также должно упростить компоновку (я мог бы просто жестко закодировать ее в каталог пакета).

Есть идеи?

Спасибо

1 Ответ

2 голосов
/ 22 июня 2011

Во-первых, любой пакет расширения для R, содержащий скомпилированный исходный код, будет скомпонован с помощью дианмики - так как R загружает его во время выполнения.

Тем не менее, любые внешние зависимости вашего кода могут быть статически связаны с пакетом расширения. Чтобы это произошло, вы можете попытаться просто перечислить статическую библиотеку с ее полным путем в аргументе PKG_LIBS и стандартным способом принудительного применения статической связи.

Лично я не могу представить пример пакета CRAN, использующего этот подход, или я бы предложил его как строфу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...