我正在构建一个Windows(基于Visual Studio,基于C ++)的控制台应用程序,并希望为其发布源代码。但是,我不希望它的特定功能的定义可见。有没有办法预编译(只是包含定义的文件)它,以便没有人可以查看它,但其余的源是可见的,可以使用'预编译'函数定义构建/运行?< / p>
答案 0 :(得分:3)
您有两个基本选择:
以编译形式提供该功能
ifstream::write()
)共享库(除非您有迫切的理由需要“仅源”版本,否则这不会比仅运送共享库有多大帮助,以上符合您的目的)以某种方式模糊源代码,消除了通过阅读它可能获得的价值或洞察力
有许多源代码混淆实用程序(特定建议不在S.O.的主题。)
一种形式的混淆是生成C ++源代码的汇编语言版本(例如dlopen()
,g++ -S
),这对于大多数程序员来说更难以理解和修改
答案 1 :(得分:0)
不,你不能。当您发布源代码时,有关该功能的信息就在那里。如果你以某种方式发布它&#39;预编译&#39;并且仍然调用该函数,然后信息仍然存在。如果您要求保密功能,则不得将其释放。