我想向我的客户发送一些组件。我想提供源代码的原因是:
1) 我的类(class)是模板化的。客户可能会使用任何模板参数,因此我无法预编译并发送 .o 文件。
2) 客户可能使用与我不同的 gcc 编译器版本。所以我希望他最后做编译。
现在,由于显而易见的原因,我不能透露我的源代码。我最多只能显示 .h 文件。我如何实现这一目标的任何想法。我在考虑gcc中的一些钩子(Hook),支持编译前解密等。这可能吗?
简而言之,我希望他能够在无法窥视内部的情况下编译这段代码。
最佳答案
契约 = 好,混淆 = 不好。
也就是说,您始终可以使用一种 PIMPL 习惯用法来为您的客户提供二进制文件和 header 中的模板化包装器。然后想法是使用“无类型”单独编译的实现,其中模板化包装器仅为客户端代码提供类型安全。这就是在编译器开始理解如何优化模板之前人们经常做的事情,即避免机器代码级别的代码膨胀,但它只提供了一些针对琐碎的复制和粘贴盗窃的保护措施,而不是任何针对某人的保护措施愿意深入研究机器代码。
但也许付出的努力不仅仅是 reshape 您的功能?
关于c++ - 如何向客户隐藏 C++ 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3921162/