Trabaje en un proyecto remoto con Eclipse a través de SSH


Tengo las siguientes casillas:

  1. Una caja de Windows con Eclipse CDT,
  2. Una caja de Linux, accesible para mí solo a través de SSH.

Tanto el compilador como el hardware necesarios para compilar y ejecutar mi proyecto solo están en la máquina B.

Me gustaría trabajar "transparentemente" desde un cuadro de Windows en ese proyecto usando Eclipse CDT y poder construir, ejecutar y depurar el proyecto de forma remota desde el IDE.

¿Cómo puedo configurar eso:

  • El edificio será trabajo? ¿Alguna solución más sencilla que escribir un makefile local que rsync el proyecto y luego llamar a un makefile remoto para iniciar la compilación real? ¿Eclipse managed build tiene una función para eso?
  • ¿La depuración funcionará?
  • Preferiblemente-la indexación de código CDT Eclipse funcionará? ¿Tengo que copiar todos los archivos de encabezado necesarios de la máquina B a la máquina A y agregarlos para incluir la ruta manualmente?
Author: jww, 2010-11-18

7 answers

Pruebe el Explorador del Sistema remoto (RSE). Es un conjunto de plug-ins para hacer exactamente lo que quieres.

Es posible que RSE ya esté incluido en su instalación actual de Eclipse. Para registrarse en Eclipse Indigo vaya a la ventana > Perspectiva Abierta > Otros... y elija Remote System Explorer desde el diálogo Open Perspective para abrir la perspectiva RSE.

Para crear un proyecto remoto SSH desde la perspectiva RSE en Eclipse:

  1. Defina una nueva conexión y elija solo SSH en la pantalla Seleccionar Tipo de sistema remoto en el cuadro de diálogo Nueva conexión.
  2. Ingrese la información de conexión y luego elija Finalizar.
  3. Conéctese al nuevo host. (Asume que las claves SSH ya están configuradas.)
  4. Una vez conectado, profundice en los archivos Sftp del host, elija una carpeta y seleccione Crear Proyecto remoto desde el menú contextual del elemento. (Espere como el proyecto remoto es crear.)

Si se hace correctamente, ahora debería haber un nuevo proyecto remoto accesible desde el Explorador de proyectos y otras perspectivas dentro de eclipse. Con la configuración correcta de la conexión SSH, las contraseñas se pueden convertir en una parte opcional del proceso normal de autenticación SSH. Ahora se crea un proyecto remoto con Eclipse vía SSH.

 191
Author: Aaron Digulla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-29 03:52:42

La forma más sencilla sería ejecutar Eclipse CDT en la caja de Linux y usar ya sea X11-Forwarding o software de escritorio remoto como VNC.

Esto, por supuesto, solo es posible cuando Eclipse está presente en la caja de Linux y su conexión de red a la caja es lo suficientemente rápida.

La ventaja es que, debido a que todo es local, no tendrá problemas de sincronización y no obtendrá ningún problema incómodo multiplataforma.

Si no tiene eclipse en la caja, podría pensar en compartir su directorio de trabajo de Linux a través de SMB (o SSHFS) y acceder a él desde su máquina Windows, pero eso requeriría bastante configuración.

Ambos serían mejores que tener dos copias, especialmente cuando es multiplataforma.

 10
Author: Lagerbaer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-18 16:07:37

Estoy en el mismo lugar yo mismo (o estaba), FWIW terminé revisando un recurso compartido de samba en el host de Linux y editando ese recurso compartido localmente en la máquina Windows con notepad++, luego compilé en la caja de Linux a través de PuTTY. (No se nos permitió actualizar las diez versiones y/o de los editores en el host Linux y no tenía Java, así que renuncié al reenvío X11)

Ahora... Corro modern Linux en una VM en mi host de Windows, agrego todas las herramientas que quiero (por ejemplo, CDT) a la VM y luego compruebo y construir en una cárcel de chroot que se asemeja mucho a la RTE.

Es una solución torpe, pero pensé en tirarlo a la mezcla.

 6
Author: timB33,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-20 09:01:06

Mi solución es similar a la de SAMBA excepto usando sshfs. Monte mi servidor remoto con sshfs, abra mi proyecto makefile en la máquina remota. Ve desde ahí.

Parece que también puedo ejecutar una interfaz gráfica de usuario en mercurial de esta manera.

Construir mi código remoto es tan simple como: ssh address remote_make_command

Estoy buscando una manera decente de depurar sin embargo. Posiblemente a través de gdbserver?

 3
Author: Samantha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-22 22:34:12

Tuve el mismo problema hace 2 años y lo resolví de la siguiente manera:

1) Construyo mis proyectos con makefiles, no gestionados por eclipse 2) Uso una conexión SAMBA para editar los archivos dentro de Eclipse 3) Construcción del proyecto: Eclipse llama un make "local" con un makefile que abre una conexión SSH al host de Linux. En la línea de comandos SSH puede dar parámetros que se ejecutan en el host Linux. Yo uso para ese parámetro a makeit.sh script de shell que llaman a la marca" real " en el host linux. Los diferentes objetivos para la construcción se puede dar también por parámetros de el makefile local > > makeit.sh mak > makefile en linux.

 2
Author: 900ss,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-28 16:18:15

Para este caso se puede utilizar ptp eclipse https://eclipse.org/ptp / para explorar y construir fuentes.

Puede utilizar este pluging para depurar su aplicación

Http://marketplace.eclipse.org/content/direct-remote-c-debugging

 1
Author: Mohamed Abdelazim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-11 12:17:15

Lo intenté ssh -X pero fue insoportablemente lento. También probé RSE, pero ni siquiera soportaba construir el proyecto con un Makefile.

Leí que NX es más rápido que el reenvío X11, pero no pude hacerlo funcionar.

Finalmente, descubrí que mi servidor soporta X2Go (el enlace tiene instrucciones de instalación si el tuyo no). Ahora solo tenía que:

  • descargar y descomprimir Eclipse en el servidor,
  • instalar X2Go en mi máquina local (sudo apt-get install x2goclient en Ubuntu),
  • configure la conexión (host, inicio de sesión automático con clave ssh, elija ejecutar Eclipse).

Todo es como si estuviera trabajando en una máquina local, incluyendo la creación, depuración e indexación de código. Y no hay retrasos notables.

 1
Author: arekolek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-18 12:19:37