从Windows工作站开发Linux应用程序的最佳设置是什么?现在我通过SSH连接到我们的Linux开发服务器,并使用Eclipse,通过PuTTY通过SSH转发到在我的Windows工作站上运行的公共域版本的Xming.它有效,但不是很好; Eclipse的响应时间远远不够快(比我在速度较慢的Windows工作站上本机运行的Eclipse差得多),我无法调整一些对话框的大小,而且我还没有想出一个重新配置字体的好方法.
有更好的设置可用吗?
编辑:这是用于C/C++开发.
Windows上的Linux选项:
仅限工具
鉴于您正在使用Eclipse,我将假设您需要一个完整的IDE,但如果您只使用GNU/Linux工具,那么有一些选择.
cygwin为您提供了一个包含许多工具的bash shell,包括一个X11服务器.这已经有一段时间了并且已经成熟.
msys是cygwin的一个更小,轻量级的替代品.
Win32的GNU实用程序是另一种轻量级替代方案.这些是本机版本的工具,而不是cygwin,它需要一个cygwin DLL来伪造其工具,以为它们在Linux上运行.
Windows进程中的Linux
有几个软件包将Linux作为Windows进程运行,而不像虚拟化那样模拟整个PC.他们使用Cooperative Linux,即coLinux,仅限于32位系统.这些没有虚拟化的开销,并且由于您没有启动虚拟PC,因此启动速度更快.这在实验方面稍微多一些,可能不像某些虚拟化选项那样稳定.
便携式Ubuntu
andLinux
虚拟化
虚拟化软件允许您在虚拟PC中启动另一个操作系统,该操作系统与主机操作系统共享硬件.这是非常经得起考验的.这里有很好的选择,可以在特定状态下拍摄Virtual PC的快照,暂停/恢复虚拟PC等.很高兴能够试用虚拟PC,添加一些软件包,然后恢复到之前的快照, "开始干净".
VMWare的
VirtualBox的
虚拟PC
就我而言......
听起来你的环境有不同的性能特征,但这就是我的情况:我开始在我的Windows笔记本电脑上使用Eclipse(进行Rails开发),发现这种情况很慢,并转而使用putty来ssh进入一个快速的Linux盒子.我通过运行在Linux服务器上的emacs进行编辑,使用Xming在Windows上显示.或者我在Windows上使用本机emacs,编辑通过NFS共享的文件.由于节省缓慢,后者在我的环境中变慢.
在家工作时,我放弃了X,因为它对于远程客户端来说太慢了,而且只是emacs -nw
在一个腻子窗口内运行.然后我使用GNU,screen
这样我就有了多个"窗口",这样如果我的网络连接断开,我就可以轻松地从中断的地方恢复.
我发现的最佳方法是:
让你的代码可移植
在桌面上本地开发
验证任何操作系统依赖关系(尽可能减少这些依赖关系)
定期部署到目标,在那里进行测试和调试
我知道这不是一个直接的答案,但使用IDE进行X开发对于大多数免费工具来说都是痛苦的.我以这种方式工作的唯一方法就是当我在桌面上运行类UNIX时,所以X是原生的.如果您打算使用此方法,请在桌面上尝试商用X解决方案.
除此之外,考虑放弃IDE并通过SSH,终端编辑器(例如,vi,pico,ee,emacs),make/ant和gdb进行开发和调试.
最适合您的方法是使用您的编程语言和您正在开发的应用程序类型.如果您正在进行GUI应用程序,那么使用X可能是唯一可接受的方法.如果您正在进行后台/守护进程开发,那么SSH和终端方法可能会起作用,尽管您可能希望对vi或emacs非常熟悉.
编辑:刚刚注意到你正在进行C/C++开发.如果您还没有,请考虑使用跨平台框架.使用Qt,APR,ACE或Poco之类的东西可以在Windows下进行原生开发,并在Linux环境中部署/调试步骤.
一个易于设置的选项是在Windows中本机运行Eclipse,但是通过Linux机器上的Samba共享部署代码(可以作为另一个驱动器安装)(或者如果SMB不可选,则安装SSH/SCP)然后运行它那里通过SSH控制台.
另一个易于设置的选项是简单地通过freenx或类似工具在Linux上开发而不是完整的X会话,请查看以下答案:https://serverfault.com/questions/11367/remote-desktopping-from-windows-to -linux/11372#11372
其他选项(虚拟化,Linux内部运行的Linux,Cygwin)确实有效,但有它们的缺点,例如机器要求更高,设置更难,或者与实际的Linux环境不够相同,但如果它们可能非常值得您你有机器和场景证明他们的使用.
如果你的机器是Windows,那么在Linux端做所有事情总会有一些缺点.
我个人有一个Linux机器人,其他人都有Windows并在虚拟机内部做Windows开发,但它花了我很多RAM和一些网络设置的痛苦.
对于开发,我通常在Windows机器上使用Linux虚拟机.它可能会让运行到浴室的Linux用户洗手,但是我在Visual Studio中进行了所有开发,并且我有一个自定义Visual Studio插件,它通过虚拟机调用G ++并将输出传递到VS输出窗口.通过快速更改组合框,我可以构建和测试Windows或Linux.
我发现coLinux在Windows for Linux上开发时非常有用,它基本上是一个与Windows操作系统并行运行的Linux系统(即作为服务),并且可以配置为简单地显示在您的LAN上,基本上就像虚拟机一样.此外,它比CygWin更全面,它的性能非常出色 - 我可以在coLinux下轻松运行非平凡的东西,并且仍然以90+ fps运行模拟器.
此外,coLinux可以轻松设置为运行X11和窗口管理器,如gnome/KDE,以便您可以使用类似vnc的东西来访问您的Linux桌面.
Cooperative Linux是第一个在Microsoft Windows上优化运行Linux的免费开源方法.更常见的是,Cooperative Linux(简称coLinux)是Linux内核的一个端口,它允许它与一台机器上的另一个操作系统一起协同运行.例如,它允许人们在Windows 2000/XP上自由运行Linux,而不使用VMware等商用PC虚拟化软件,其方式比使用任何通用PC虚拟化软件更优化.
colinux截图http://colinux.org/screenshots/network.png
有多种解决方案,我建议第一
在Windows内部作为访客操作系统运行Linux风格的VM(虚拟机)。从...开始免费的VirtualBox。
为了简化管理,您可以使用Vagrant之类的工具。Vagrant是用于在单个工作流程中构建和管理虚拟机环境的工具。通过简单易用的工作流程并专注于自动化,Vagrant缩短了开发环境的设置时间,提高了生产效率。因此,您可以在Windows PC中进行编码,并使用Vagrant在Linux系统上编译/运行该应用程序。流浪者是免费的!相似工具:也可以使用Docker。对于此设置,您可以使用任何IDE,我建议VSCode对于具有intellisense的C / C ++非常方便,但是Eclipse也应该工作。
Nitrous.io等基于Web的工具已经停产,但是您可以托管自己的Nitrous IDE开源版本(称为Nitrous Solo),该工具可以让您在自己喜欢的云提供商上托管自己的Nitrous IDE实例。
Windows 10提供了用于Linux的Windows子系统,请尝试使用该子系统来编译和运行您的项目。这需要Windows 10周年更新或更高版本(内部版本1607+)的64位版本。
Cygwin / MinGW是Windows上流行的bash工具,它们可能能够编译和/或运行您的应用程序。