Разработка пакета R - Как справиться с ошибками связывания библиотеки C при установке пакета - PullRequest
2 голосов
/ 03 августа 2020

Ситуация:

Пакет R, который я разрабатываю, экспортирует функцию C через R .C.

Код в src/, где функция определена, компилируется нормально, если libtiff установлен в ОС.

Я бы хотел, чтобы эта функция была необязательной; точно так же, как есть «предлагаемые» пакеты R, потому что это не обязательно.

Проблема

Я не нашел способа сообщить R, что компиляция функции C «предлагается». Я также не мог найти способ сделать компиляцию кода в src / optional или каким-то образом обусловить наличие libtiff в ОС.

Мои текущие Makevars говорят:

CC=ccache clang -Qunused-arguments
CXX=ccache clang++ -Qunused-arguments
CCACHE_CPP2=yes    
PKG_LIBS = -ltiff

Я весь день безуспешно искал решение.

Я только что понял, как использовать Makevars для поиска libtiff:

TIFFSTATUS := $(shell $(LD) -ltiff; echo 0 || echo 1)
ifeq ($(TIFFSTATUS), 1)
... stuff?

Вопрос

Как я могу правильно сказать R, что функция, использующая .C, является необязательной (ie зависит от доступности зависимостей libtiff).

Спасибо.

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