首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用来自另一个包的少量C++级代码

使用来自另一个包的少量C++级代码
EN

Stack Overflow用户
提问于 2016-07-04 15:18:18
回答 1查看 105关注 0票数 1

有一个R包,它定义了一些方便的函数,用于将文件从zip归档中提取到std::string中的C++中。我想在我自己的包中使用这些函数,但是我不能简单地链接到它们,因为标题不在原始包的inst/include目录中。

我的问题是基于我的理解,即C++级别的代码在包之外是不可用的,除非标头在inst/include中。

要使用代码,我的选项是:

  1. 请包维护者将C++头文件移动到inst/include目录,以便我可以从包中调用DESCRIPTION文件中的linkingTo
  2. 复制并确认代码,这意味着将GPL-3许可证传播到我自己的包中.
  3. 复制并无意义地修改代码以逃避版权。
  4. 复制代码,大约20行,不要修改它,不承认它,也不要传播GPL-3许可证。
  5. 创建一个单独的、很小的包,使我想要的代码在inst/include中可用,承认最初的作者,并将GPL-3的许可传递给自己(但不是我的实际包,它只是includes )。

还有其他选择吗?我是否误解了写R扩展Rcpp

Clarification:我根本不容忍选项3和4,在我看来,这是作弊。这就是问题所在。阅读答案的人现在会发现,这样的事情被认为是作弊。但是他们是人们在做‘正确的事情’时要考虑的事情,比简单的Imports: package更难,这就是为什么我把它们包括在内。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-04 15:31:03

唯一可行的选择是备选方案1和2。

选项1可以工作,只要R维护人员愿意在GPL以外的许可下给您代码。当然,这意味着您将只针对该双授权代码进行链接,而不是针对所有R。

如果您愿意为您的代码和链接到该代码的所有代码使用GPL,则选项2有效。

选项3就是剽窃的定义,而不是一种选择。

选项4是可疑的,不道德的,也有点难以实现,因为你已经公开宣布了这个选项。

选项5不起作用,因为GPL也适用于单独的包,而且扩展到也适用于使用该包的所有代码。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38187986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档