it-swarm.com.de

Wie ein c ++ Projekt auf einem Remote-Computer in Eclipse zu bauen?

Ich habe einen Windows-PC mit Eclipse Ganymede und einen Linux-PC, auf dem sich meine C++ - Projektdateien befinden. Ich benutze Eclipse, um die Dateien über SMB zu bearbeiten, und möchte das Projekt auch mit Eclipse erstellen. Momentan verbinde ich mich mit PuTTY mit meinem Linux-Rechner und starte ./make aus dem entsprechenden Verzeichnis. Wie würde ich denselben Befehl in Eclipse ausführen und die Ergebnisse darin sehen? Ich habe das RSE-Plugin installiert, kann aber immer noch nicht verstehen, wie das geht.

Nur um mich klar zu machen: Ich kann VNC verwenden, um an Eclipse zu arbeiten, das auf meinem Linux-Computer installiert ist, aber ich ziehe es vor, dies nicht zu tun. Eclipse über VNC ist langsam und reagiert nicht so schnell wie die auf meinem Windows-Computer installierte Eclipse.

Danke, Rouli

26
r0u1i

Ich befand mich in einer ähnlichen Situation, entwickelte sich auf einer Windows-Workstation und kompilierte in einem Linux-Server. Das habe ich beendet:

  1. Richten Sie mit PuTTY ein kennwortloses Login für den Compilerserver ein. Sie können beispielsweise diesem Tutorial folgen.
  2. Erstellen Sie eine Anmeldesitzung mit PuTTY. Stellen Sie sicher, dass in Connections/SSH/Auth auf Ihren privaten Schlüssel verwiesen wird.
  3. Ändern Sie den Eclipse-Befehl make in plink.exe -load "saved_session" make -C /remote/path/project (Diese Einstellung befindet sich in Projekt/Eigenschaften/C++ Build/Builder-Einstellungen/Befehl Build). Sie können dies mit einer Batch-/Shell-Datei automatisieren, wenn Sie mehr Parameter übergeben müssen und/oder Ihr Setup komplexer ist.

Wenn Sie eine Passphrase mit Ihrem privaten Schlüssel gespeichert haben, können Sie pageant.exe verwenden, um Ihren Schlüssel nur einmal zu laden, sodass Sie nicht jedes Mal Ihre Passphrase eingeben müssen.

20
Ismael

Sie können ein Projekt auf einem Remote-Computer mit RSE erstellen. Dazu muss die RSE-Serverkomponente auf dem Remote-Computer installiert sein. Erstellen Sie in der Ansicht RSE Remote Systems eine Verbindung zum Computer. Erstellen Sie ein neues C/C++ - Projekt, und deaktivieren Sie auf der ersten Seite des Assistenten das Kontrollkästchen "Standardspeicherort verwenden". Dies ermöglicht eine Dropdown-Liste der Dateisystemanbieter. Wählen Sie RSE. Wenn Sie auf Durchsuchen klicken, wird ein Dialogfeld angezeigt, in dem Sie das Remote-System nach dem Ordner durchsuchen können, in dem sich Ihr Projekt befinden soll.

Bei diesem Ansatz gibt es einige Probleme. Vor allem, wenn der CDT-Indexer den Index erstellen möchte, muss er alle Dateien in Ihrem Projekt analysieren, d. H. Das Herunterladen aller Dateien auf Ihren lokalen Computer. Dies kann langsam sein, wenn Sie ein großes Projekt oder eine langsame Verbindung haben.

Ein weiteres Problem ist, dass beim Neustart von Eclipse die Remote-Projekte geschlossen werden. Dies liegt daran, dass Sie noch keine Verbindung zum Remote-Computer haben, sodass Eclipse die .project-Datei nicht lesen kann. Sie müssen Ihre Remote-Projekte bei jedem Start von Eclipse erneut öffnen.

Gegenwärtig gibt es ein Projekt mit dem Namen RDT (Remote Development Tools), das CDT um indizierte Remote-Funktionen erweitert. Das bedeutet, dass der Indexer mit Ihrem Code auf der Remote-Maschine vorhanden ist, sodass die Dateien für den Indexer nicht heruntergeladen werden müssen. Es ist immer noch im "Alpha" -Status, aber wenn Sie abenteuerlustig sind und es ausprobieren möchten, gehen Sie zu hier .

6
Mike Kucera

Haben Sie Remote-Desktop-Tools wie z. nx um Eclipse lokal auf dem Rechner auszuführen, auf dem sich auch die Quelle befindet?

Das könnte die einfachere Lösung sein. Außerdem haben Sie von jedem PC, auf dem dieses Tool ausgeführt wird, dieselbe Umgebung.

3
wr.

Um von einem Linux-Host aus zu arbeiten und in einer [anderen] Linux-Remote-Umgebung zu kompilieren, lauten die Anweisungen wie folgt:

1 $ ssh-keygen, Um ein passwortloses ssh-Schlüsselpaar zu erstellen [hier id_rsa_nopassphrase], Dann scp den id_rsa_nopassphrase.pub - Schlüssel von Hosts ~/.ssh/ Zu remote's ~/.ssh/authorized_keys [Inhalt anhängen, falls sich bereits eine solche Datei auf der Fernbedienung befindet]; dann

2 Fügen Sie dem ~/.ssh/config Des Hosts einen Eintrag wie Host my_remote_ssh_alias HostName MY_REMOTE_SERVER User remote_username Port 22 IdentityFile /home/<Host_username>/.ssh/id_rsa_nopassphrase Hinzu

3 Der Befehl Eclipse make lautet dann ssh my_remote_ssh_alias -F /home/Host_username/.ssh/config 'make -C /remote/path/to/project'

1
Mark

Haben Sie versucht, Eclipse von der Linux-Maschine mit der Weiterleitung von X11 auszuführen ? Sie sollten Eclipse zuerst auf der Linux-Maschine installiert haben.

Ich habe es selbst nicht probiert.

0
Liran Orevi

Wie Liran Orevi gesagt hat, können Sie x-Fenster verwenden. 

  1. Installieren Sie den cygwin x-Server auf Ihrem Windows-System. 
  2. Aktivieren Sie entfernte Verbindungen zu diesem X-Server mit "Xhost +" oder ähnlichem (xhost + ist nicht Als sicher eingestuft, also machen Sie es nicht bei Einer öffentlichen Netzwerk, aber es ist in den meisten Fällen in Ordnung)
  3. sSH auf die Linux-Box 
  4. stellen Sie die Umgebungsvariable DISPLAY ein, zB "export DISPLAY =": 0 " 
  5. führen Sie Eclipse über die Befehlszeile aus. Eclipse sollte jetzt auf dem xserver auf dem Windows-System angezeigt werden.

ssh kann die Weiterleitung automatisieren, wodurch xhost + und DISPLAY env nicht mehr benötigt werden.

0
iain