如何创建具有外部依赖项libxml2的CRAN ready R包

问题描述 投票:2回答:1

我创建了一个R包,我想提交给CRAN。它包含需要用纯C语言编译的代码,并且此代码取决于libxml2库。

[我当前的解决方案是让Linux和Mac用户安装libxml2-dev软件包,这使他们可以编译和安装R源软件包。

对于Windows,我创建了一个特殊的二进制R-package,其中包含所需的二进制依赖性。阅读CRAN指南时,我看到只能上传源软件包,而且它们可能不包含任何二进制文件。

遵循这些准则,我的问题是:

  1. Mac / Linux是否可以在安装R软件包之前让用户安装libxml2-dev或有其他解决方案?
  2. 对于不能直接为最终用户安装libxml2的Windows我应该怎么做?
r cran r-package
1个回答
5
投票

如上所述,您可以复制xml2软件包的内容:

  • 要使事情在Linux / MacOS上正常工作,请复制文件configure/src/Makevars.in。请注意,macOS默认情况下包括libxml2的副本,因此您可以像在Linux上一样安全地链接到-lxml2

  • 对于Windows,需要从xml2复制文件src/Makevars.wintools/winlibs.R。这是一个简单的脚本,在Windows上构建R软件包时,会自动下载并静态链接libxml2 from rwinlib

这些构建脚本经过测试,可以在(几乎)任何平台上工作。

© www.soinside.com 2019 - 2024. All rights reserved.