如何创建具有外部依赖项libxml2的CRAN ready R包
我已经创建了一个R包,我想提交给CRAN。它包含需要用普通C语言编译的代码,该代码依赖于如何创建具有外部依赖项libxml2的CRAN ready R包,r,cran,r-package,R,Cran,R Package,我已经创建了一个R包,我想提交给CRAN。它包含需要用普通C语言编译的代码,该代码依赖于libxml2库 我目前的解决方案是让Linux和Mac用户安装libxml2dev包,这样他们就可以编译和安装R源代码包 对于Windows,我创建了一个特殊的二进制R包,其中包含所需的二进制依赖项。在阅读CRAN指南时,我发现只有源程序包可以上传,并且它们可能不包含任何二进制文件 在这些指导方针之后,我的问题是: Mac/Linux允许用户在安装R包之前安装libxml2 dev,还是有其他解决方案 对于
libxml2
库
我目前的解决方案是让Linux和Mac用户安装libxml2dev
包,这样他们就可以编译和安装R源代码包
对于Windows,我创建了一个特殊的二进制R包,其中包含所需的二进制依赖项。在阅读CRAN指南时,我发现只有源程序包可以上传,并且它们可能不包含任何二进制文件
在这些指导方针之后,我的问题是:
如上所述,您可以复制软件包的功能:
- 要在Linux/MacOS上运行,请复制文件
和configure
。请注意,macOS默认包含libxml2的副本,因此您可以像在Linux上那样安全地链接到/src/Makevars.in
-lxml2
- 对于Windows,需要从xml2复制文件
和src/Makevars.win
。这是一个简单的脚本,在Windows上构建R包时自动下载并静态链接tools/winlibs.R
这些构建脚本经过测试,可以在(几乎)任何平台上工作。这个由世界上最多产的R编码器开发的软件包也具有这种依赖性。为什么不照搬他的做法呢?谢谢你的链接!我已经查看了这个包,但是我错过了检查Rtools中是否包含libxml2或从这里下载libxml2的工具/winlibs.R:谢谢这些指针!使用这些文件(针对我的特定软件包稍作修改),我可以在Linux和Windows上轻松构建(尚未测试Mac,但我认为它会工作)。离向CRAN提交我的包裹又近了一大步。