我有以下盒子:

a)装有Eclipse CDT的Windows盒子, b)一个Linux盒子,我只能通过SSH访问。

编译器和构建和运行我的项目所需的硬件都只在机器B上。

我希望使用Eclipse CDT在Windows系统中“透明地”工作,并且能够在IDE中远程构建、运行和调试项目。

我如何设置它:

这幢大楼能工作吗?还有比编写本地makefile更简单的解决方案吗?这个本地makefile会对项目进行rsync,然后调用远程makefile来初始化实际的构建?Eclipse托管构建有相应的特性吗? 调试会工作吗? 最好- Eclipse CDT代码索引将工作?我是否必须将所有必需的头文件从机器B复制到机器A,并手动将它们添加到include路径?


当前回答

试试远程系统资源管理器(RSE)。它是一组插件,可以做您想做的事情。

RSE可能已经包含在当前的Eclipse安装中。要检查Eclipse Indigo,请到窗口>打开透视图>其他…并从打开透视图对话框中选择远程系统资源管理器来打开RSE透视图。

在Eclipse中从RSE透视图创建SSH远程项目:

定义一个新的连接,并在“新建连接”对话框中的“选择远程系统类型”窗口中选择“仅使用SSH”。 输入连接信息,然后选择Finish。 连接新主机。(假设SSH密钥已经设置。) 一旦连接,钻到主机的Sftp文件,选择一个文件夹,并从该项的上下文菜单中选择Create Remote Project。(在创建远程项目时等待。)

如果操作正确,现在应该有一个可以从project Explorer和eclipse中的其他透视图访问的新的远程项目。正确设置SSH连接后,密码可以成为正常SSH身份验证过程的可选部分。现在,通过SSH使用Eclipse创建了一个远程项目。

其他回答

我自己也在同样的地方(或者曾经是),我最终签出了Linux主机上的samba共享,并在Windows机器上使用notepad++在本地编辑共享,然后我通过PuTTY在Linux盒子上编译。(我们不允许在Linux主机上更新10个y/o版本的编辑器,它没有Java,所以我放弃了X11转发)

现在…我在Windows主机上的VM中运行现代Linux,将我想要的所有工具(例如CDT)添加到VM中,然后在与RTE非常相似的chroot jail中签出和构建。

这是一个笨拙的解决方案,但我想我应该把它加入到混合中。

两年前我也遇到过同样的问题,我用下面的方法解决了它:

1) I build my projects with makefiles, not managed by eclipse 2) I use a SAMBA connection to edit the files inside Eclipse 3) Building the project: Eclipse calles a "local" make with a makefile which opens a SSH connection to the Linux Host. On the SSH command line you can give parameters which are executed on the Linux host. I use for that parameter a makeit.sh shell script which call the "real" make on the linux host. The different targets for building you can give also by parameters from the local makefile --> makeit.sh --> makefile on linux host.

我尝试了ssh -X,但它慢得令人难以忍受。

我也尝试了RSE,但它甚至不支持用Makefile构建项目(我被告知,这已经改变了,因为我张贴了我的答案,但我还没有尝试过)

我读到NX的转发速度比X11快,但我不能让它工作。

最后,我发现我的服务器支持X2Go(如果你的服务器不支持,链接上有安装说明)。现在我只需要:

在服务器上下载并解包Eclipse, 在我的本地机器上安装X2Go (sudo apt-get install x2goclient on Ubuntu), 配置连接(主机,ssh密钥自动登录,选择运行Eclipse)。

一切就像我在一台本地机器上工作一样,包括构建、调试和代码索引。而且没有明显的滞后。

最简单的方法是在Linux Box上运行Eclipse CDT,并使用X11-Forwarding或VNC等远程桌面软件。

当然,这只有在Linux机器上有Eclipse并且到机器的网络连接足够快的情况下才有可能。

这样做的好处是,由于所有东西都是本地的,所以不会出现同步问题,也不会出现任何尴尬的跨平台问题。

如果您的机器上没有eclipse,您可以考虑通过SMB(或SSHFS)共享您的linux工作目录,并从您的windows计算机访问它,但这将需要相当多的设置。

两者都比拥有两个副本要好,特别是当它是跨平台的时候。

我的解决方案与SAMBA类似,只是使用了sshfs。用sshfs挂载远程服务器,在远程机器上打开makefile项目。从那里开始。

似乎我也可以用这种方式运行mercurial的GUI前端。

构建远程代码非常简单:ssh address remote_make_command

我正在寻找一种合适的方法来调试。可能通过gdbserver?