通过SSH使用Eclipse处理远程项目

Kos*_*Kos 186 c eclipse ssh remote-debugging eclipse-cdt

我有以下方框:

  1. 带有Eclipse CDT的Windows框,
  2. 一个Linux机器,只能通过SSH访问我.

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

我想使用Eclipse CDT从该项目的Windows框中"透明地"工作,并能够在IDE中远程构建,运行和调试项目.

我如何设置:

  • 大楼会起作用吗?任何比编写本地makefile更简单的解决方案rsync,然后调用远程makefile来启动实际构建?Eclipse托管构建是否具有此功能?
  • 调试会有效吗?
  • 最好 - Eclipse CDT代码索引可以工作吗?我是否必须将所有必需的头文件从机器B复制到机器A并将它们手动添加到包含路径?

Aar*_*lla 213

尝试远程系统资源管理器(RSE).这是一组完全符合您要求的插件.

RSE可能已包含在您当前的Eclipse安装中.要检入Eclipse Indigo,请转到Window > Open Perspective > Other ...并从Open Perspective对话框中选择Remote System Explorer以打开RSE透视图.

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

  1. 定义新连接,然后从"新建连接"对话框的"选择远程系统类型"屏幕中选择"仅限SSH".
  2. 输入连接信息,然后选择"完成".
  3. 连接到新主机.(假设已经设置了SSH密钥.)
  4. 连接后,深入查看主机的Sftp文件,选择一个文件夹,然后从项目的上下文菜单中选择" 创建远程项目 ".(等待创建远程项目.)

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

  • @AaronDigulla嗨,解决方案很酷,但我发现当我构建远程项目时,Eclipse正在尝试在本地编译它.反正有没有让它在远程机器上编译和运行? (3认同)
  • RSE仍然很棘手.RSE最好的想法是让Eclipse通过SSH连接完成所有工作,但该功能尚未运行.工作功能涉及一些您需要在Linux机器上设置的服务器. (2认同)
  • RSE 人员也喜欢获得错误/增强报告。 (2认同)
  • @Aaron - 我之前尝试过这个rsync解决方案,来自Makefile - 它基本上会用一个Ctrl + B替换你的键序列.问题是,使用这种方法我既不能运行也不能从Eclipse调试.RSE确实听起来像是工作中的好工具; @Ioan,你能详细说明什么不起作用吗?RSE维基似乎将SSH文件系统和远程调试列为当前功能......或者我将在本周一试用它. (2认同)
  • C/C++ 索引无法与 RSE 正常工作。索引器抱怨缺少符号。当项目和源文件存储在本地时它可以很好地工作,但使用 RSE 则不行。有任何想法吗? (2认同)

Lag*_*aer 12

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

当然,这只有当Linux上的Eclipse存在且您的网络连接足够快时才可能.

优点是,由于一切都是本地的,您不会遇到同步问题,并且您不会遇到任何棘手的跨平台问题.

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

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

  • @Kos:没有.X11的工作原理如下:你有一个客户端和一个服务器.服务器是监视器连接的位置.它完成所有渲染和显示.客户端(在本例中为Eclipse)只是将渲染命令发送到服务器.因此,您必须在Windows上安装X11并在Linux机器上运行Eclipse.你需要在Linux上做的就是设置`DISPLAY`变量,以便Eclipse知道服务器的位置. (7认同)
  • 网络需要快速,您的服务器也是如此,或者Eclipse运行速度非常慢. (5认同)
  • @Kos,你需要让X11服务器在你所在的地方运行 - 无论是在虚拟机中使用Linux,还是在Windows上使用X11服务器 - 以及在Linux服务器上运行Eclipse.ssh只允许隧道传输网络数据 - 你会发现压缩+"-c blowfish"来帮助体验. (2认同)

tim*_*B33 6

我自己(或曾经)在同一个地方,我最终检查了Linux主机上的samba共享,并在Windows机器上使用notepad ++在本地编辑该共享,然后我通过PuTTY在Linux机器上编译.(我们不允许在Linux主机上更新10个版本的编辑器,它没有Java,所以我放弃了X11转发)

现在......我在Windows主机上的VM中运行现代Linux,将我想要的所有工具(例如CDT)添加到VM,然后我签出并构建一个非常类似于RTE的chroot监狱.

这是一个笨重的解决方案,但我想我会把它扔进去.


小智 5

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

看来我也可以通过这种方式运行 Mercurial 的 GUI 前端。

构建我的远程代码非常简单: ssh 地址remote_make_command

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