Недавно я нашел эту библиотеку C (http://libxlsxwriter.github.io/), и попытался использовать его с R.Linking C библиотека для R
Получения библиотеки C, чтобы работать сам по себе была не сложна. Я скачал zlib
и libxlsxwriter
с помощью msys2
и побежал make
в папке libxlsxwriter
.
Теперь я могу запустить этот пример Hello-World, позволяет назвать его test.c
:
#include "xlsxwriter.h"
void main() {
lxw_workbook *workbook = workbook_new("myexcel.xlsx");
lxw_worksheet *worksheet = workbook_add_worksheet(workbook, NULL);
int row = 0;
int col = 0;
worksheet_write_string(worksheet, row, col, "Hello me!", NULL);
workbook_close(workbook);
}
Теперь я могу скомпилировать test.c
командой:
cc test.c -o test -lxlsxwriter -lz
А затем запустите исполняемый файл:
./test
И теперь у меня есть документ Excel-документ Hello-World.
Получение работы с R было намного сложнее. Если я просто запустите:
R CMD SHLIB test.c
Я получаю эту ошибку: ibxlsxwriter/include/xlsxwriter/common.h:19:42: fatal error: xlsxwriter/third_party/queue.h: No such file or directory #include "xlsxwriter/third_party/queue.h"
Однако файл явно там, когда я проверяю.
Любые советы по подключению этой библиотеки C к R? На данный момент я просто пытаюсь получить привет-мир пример для запуска из R.
Будет ли это лучший подход, чтобы начать строить пакет с xlsxwriter
в папке inst
, а затем попытаться написать makevars
что получите xlsxwriter
, чтобы скомпилировать правильно? Я знаю, что мне нужно будет включить PKG_CPPFLAGS = -I../inst/libxlsxwriter
, но я предполагаю, что мне нужно больше этого.
Проверьте 'R CMD config', ища переменные' SHLIB_ * '; установите их, чтобы они указывали в соответствующих местах перед запуском 'R CMD SHLIB'. –