我想使我的Fedora Linux具有以下功能:
将Linux用于完整的开发平台,而无需安装任何其他操作系统,但仍能够在不同平台上构建和测试程序。
将Windows机器完全替代所有其他工作,例如Office,Paint,Remote Desktop等。
您可以建议实现上述目标的开源项目和工具吗?
我想使我的Fedora Linux具有以下功能:
将Linux用于完整的开发平台,而无需安装任何其他操作系统,但仍能够在不同平台上构建和测试程序。
将Windows机器完全替代所有其他工作,例如Office,Paint,Remote Desktop等。
您可以建议实现上述目标的开源项目和工具吗?
Answers:
无论您是系统程序员,Web开发人员还是桌面应用程序开发人员,都可以轻松地进行跨平台开发。如果您是系统用户,那么您为Linux编写的任何实用程序和/或驱动程序都可以通过最少的修改而很好地适用于其他* nix。只要您编写标准的C代码并且不使用过多的系统特定调用,它们甚至可能很容易移植到Windows。
如果您是桌面应用程序开发人员,则可以定位GTK,QT或wxWidgets,您的应用程序可能会在当今的主要3个平台(* nix,Windows,Mac)上很好地运行。同样,将特定于系统的调用保持在最低限度,或者将它们隔离到特定于系统的包装器库中。您还调用了以JVM和/或CLR之类的虚拟机为目标,该虚拟机将允许应用程序全面运行。
如果您是网络开发人员,那么您可能会遇到太多不同的选择。我更喜欢一个名为Cherokee的小型Web服务器,我开发并运行ASP.NET(单声道)和在其上运行并使用PgSQL后端的Django应用程序。
因此,得出的结论是,只要您可以在目标平台上编译代码,并且在编写代码或针对VM时牢记这一点,就可以完成Linux中的跨平台开发。另一点是,您可能会遇到选择悖论,却不知道该使用什么。为此,请阅读我对第二个问题的回答。
关于第二个问题,我发现的最好的资源称为“ 开源替代方案”。该网站列出了商业软件及其开源替代方案。几乎所有替代方案都可以在Linux和FreeBSD上运行。
定义“平台”。即使实际上可以使用交叉编译在Linux或Windows上运行,也无法合理地测试要在Windows或Mac上使用的软件。对于在其他操作系统上的真实测试,VMware是一个很好的工具。
问题的第二部分可能应该是一个完全独立的问题。但是您可以使用OpenOffice.org或Google Docs替换MS Office,Pinta或GIMP,或使用其他任何方式替换Paint,VNC或Empathy + Vinagre替换远程桌面等。
如果给出了一些更具体的用例,则回答这些问题会更容易。
Weeeeeeel,第一名,先生。我不知道有什么方法可以实现这个目标。可以在开发盒上完成对其他* nix的交叉编译(有点麻烦),但是如果没有适当的OS和体系结构,您应该如何准确地运行该代码?那里有广泛的系统仿真方面的尝试,但是最终这是一个麻烦。如果要在OS /体系结构上测试软件,请在该OS /体系结构上运行它!
另一方面,现在有可用的工具可以简化在各种配置中构建同一项目的过程。 Cmake可能是最著名和经过测试的。至少这将帮助您在其他系统上测试项目,或者鼓励其他人为您测试。
顺便说一句,我很确定这在其他操作系统上也是不可能的。
#2容易得多
等等。我会提供更多帮助,但是您的问题敏锐度急剧下降。
MonoDevelop应该能够帮助您掌握开发方面的知识:
MonoDevelop是主要用于C#和其他.NET语言的IDE。MonoDevelop使开发人员能够在Linux, Windows和Mac OSX上快速编写桌面和ASP.NET Web应用程序。MonoDevelop使开发人员可以轻松地将使用Visual Studio创建的.NET应用程序移植到Linux,并为所有平台维护单个代码库。
(重点是我的)