有没有办法在R包二进制文件中访问C源代码?

时间:2013-07-18 21:42:58

标签: r package obfuscation

我想分享我的R包,但保留源代码直到发表文章。如果我使用R CMD INSTALL --build编译一个包,最终用户有没有办法读取C源代码?

根据R News 2006-4的第44页,

  

为了访问已编译代码的源代码   (即C,C ++或Fortran),它是不够的   R的二进制版本或贡献包   安装。

我对这些知识感到满意(事实上,我更愿意发布消息来源),但我需要减轻合作者的恐惧。

我的主要问题是确认:如果我分发由R CMD INSTALL --build创建的二进制文件,C源代码是否无法访问?


更新:我不清楚为什么这个问题已经收到如此多的下来票数(此时为4票)。 downvote表示“这个问题没有显示任何研究工作;它不清楚或没有用”。我只询问本机R功能,而不是试图宣传任何邪恶的意图。

2 个答案:

答案 0 :(得分:2)

如果.c源文件不在分布式存档文件中(适用于Linux的.tar.gz,也许适用于Windows的.zip),那么不能,您无法获取源代码。我只是用一个骨架包和一个foo.c文件做了一个快速测试,它不适合我,只是一个编译好的foo.so文件。

当然,除非您使用过Rcpp并将C代码放入内联R函数中。

答案 1 :(得分:1)

如果您只有二进制文件输出,则源代码无法访问。获得一些想法的唯一方法是拆卸。当然,你的所有头文件也应该被编译。