gpt4 book ai didi

c - 将 C 库链接到 R

转载 作者:太空宇宙 更新时间:2023-11-03 23:21:23 24 4
gpt4 key购买 nike

我最近发现了这个 C 库 ( http://libxlsxwriter.github.io/ ),并尝试将它与 R 一起使用。

让 C 库自行运行并不困难。我使用 msys2 下载了 zliblibxlsxwriter,并在 libxlsxwriter 文件夹中运行了 make .

现在我可以运行这个 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 运行。

inst 文件夹中使用 xlsxwriter 开始构建一个包,然后尝试编写一个 makevars 是否是更好的方法? > 这将使 xlsxwriter 正确编译?我知道我必须包含 PKG_CPPFLAGS = -I../inst/libxlsxwriter 但我猜我需要的不止这些。

最佳答案

您可能想尝试 Continuum 的 Anaconda R 包。他们相当直接地使用 MSYS2 包。工具链包称为 m2w64-toolchain,posix 包有时也可用于构建 R 包。

conda install -c r r-essentials m2w64-toolchain posix

免责声明:我在 Continuum 工作,但我也在 MSYS2 工作。

关于c - 将 C 库链接到 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38469324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com