保护生成的源文件
Posted
技术标签:
【中文标题】保护生成的源文件【英文标题】:Protection of generated source files 【发布时间】:2016-02-01 11:12:30 【问题描述】:我在一家根据我们语言的不同输入文件编写 C++ 源文件生成器的公司工作。
然后使用标准 C++ 编译器(MSVC cl、gcc)将这些文件编译到可执行文件中,并在编译后将它们删除。
这些生成的文件取决于包含文件的数量,并与包含静态代码的静态库链接(不依赖于源文件)。这些文件存在于我们产品的安装目录中。
是否有任何解决方案/程序/技术可用于从用户文件系统中隐藏这些生成的文件,但让它们对 C++ 编译器可见?
我正在寻找跨平台解决方案(Linux、Windows),比如用户空间文件系统。
感谢您的任何建议。
【问题讨论】:
为什么要这样做?这只会给整个过程和设置增加巨大的不透明性。谁应该从中受益? 静态库不包含源代码,它们肯定包含目标代码? 看起来是 XY 问题:meta.stackexchange.com/questions/66377/what-is-the-xy-problem @arkascha 其目的是保护生成文件中的知识,因此客户将收到他支付的费用,但竞争对手无法轻易获得知识。 @RichardCritten 部分是 XY,因为我试图尽可能地描述用法。但是还没有找到任何解决方案,因此保护这些源文件的任何其他方式都会很棒 【参考方案1】:使用 gcc 可以直接从 stdin:How to compile code from stdin? 编译,只需要提供输入语言选项(通常从文件名中检测到)。
虽然不确定 MSVC。
【讨论】:
是的,这可能有效,但我们必须实现源文件的 C 预处理器来保护我们的头文件。但是这个解决方案只会解决源文件的保护问题。以上是关于保护生成的源文件的主要内容,如果未能解决你的问题,请参考以下文章