如何禁用我为Windows重新编译的开源软件?

时间:2011-06-30 19:48:28

标签: windows linux open-source compilation

我想构建开源软件,例如对于Linux,但我真的不希望能够由其他人重新编译(重建)它的窗口。有可能吗?

(请不要留下我不想为Windows用户提供的问题。)

4 个答案:

答案 0 :(得分:3)

将软件从Linux移植到Windows 可能很难

如果你看一下它何时以及为什么很难的例子,并选择在你的代码中包含这些例子,你可能会让人们更难以将人们的代码移植到Windows。

但是不可能是不可能的

为了将一些优秀的Linux工具和应用程序整合到Windows中,已经做了很多工作。 GNU工具有它们的windows版本,像这样的半模拟器也会有很大的帮助。由于Linux是免费的,并且Windows用户能够在(免费)虚拟机中运行Linux,他们仍然可以通过这种方式执行您的应用程序。

答案 1 :(得分:3)

如果你的应用程序是“开源”,我会理解这意味着它使用了一个标准的开源许可证:GPL,BSD,Apache,MPL等。

这些许可证都没有一个条款阻止用户在不同的操作系统(例如Windows)上重新编译它。

虽然您的代码可能与Windows完全不兼容,但显然没有什么可以阻止某人进行必要的更改并在Windows上构建它。

当然,除非您避开标准的开源许可证,并向其发送一些禁止此操作的特殊自定义许可证。在这种情况下,我认为它不是真正的“开源”。

所以这是我的答案:你做不到。根据定义。

答案 2 :(得分:1)

不喜欢某些供应商是一回事 - 许多专业人士都这样做。但故意排除所有用户是完全不同的事情。这被认为是非常粗鲁 - 更可能是幼稚和不专业。

便携性是精心设计的软件的一大优点。它在可维护性,效率,可用性等方面排名靠前。几乎每个专业人员都曾在某个时间或其他地方遇到过不可移植的代码,并从内心深处诅咒其作者。除非你提出一个引人注目的案例,否则你不会得到关于如何在这里打破它的建议。

答案 3 :(得分:1)

要注意,永远不要在任何事情上发布负面情绪的话题(特别是像Windows等),人们会毫无理由地投票。现在回答你的问题,如果你分发你的来源,你要求每个人都以他们喜欢的方式构建它。 - 或 - 在应用程序中添加依赖于“混淆的二进制文件”并仅为Linux构建该二进制文件 - 这至少会阻止在另一个平台上运行您的软件 - 但它仍然可以被移植!