我最近发现了这个C库(http://libxlsxwriter.github.io/),并试图将它与R一起使用。
让C库自己工作并不困难我使用zlib下载了libxlsxwritermsys2,并在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

现在我有一个Hello World excel文档。
让它和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连接起来有什么建议吗在这一点上,我只是想让hello world示例从R运行。
开始构建一个xlsxwriter文件夹中有inst的包,然后尝试编写一个makevars以使xlsxwriter正确编译,这是一种更好的方法吗我知道我必须包括PKG_CPPFLAGS = -I../inst/libxlsxwriter但我想我需要的不止这些。

最佳答案

你可能想试试Continuum的水蟒R包装他们相当直接地使用MSYS2包toolchain包称为m2w64 toolchain,posix包有时对于构建R包也很有用。
conda install -c r r-essentials m2w64-toolchain posix
免责声明:我为Continuum工作,但我也为MSYS2工作。

10-04 15:10