Dijeljeni direktorij se montira, editor otvara datoteku, a izgradnja ipak teče na laptopu. Ništa ne prijavljuje grešku, i baš to zbunjuje. Daljinska putanja nije daljinski lanac alata, a editor koji može čitati datoteku kroz montažu rado će na nju pozvati lokalni kompajler. Rješenje je premjestiti radni prostor, a ne samo bajtove.

Montirani direktorij nije radni prostor

Montaža preko SSH-a ili SMB-a daje vam putanju. Da li kompajler, sistem izgradnje i debager dolaze s daljinske strane zavisi od toga gdje ih editor odluči pokrenuti. Mnoga podešavanja čitaju daljinske datoteke i kompajliraju ih lokalno, pa se spotaknu na zaglavlju koje postoji samo na serveru.

Simptom je suptilan: izgradnja uspije s djelimičnim rezultatima ili se slomi na include putanji koja u editoru izgleda ispravno.

Dokažite koji host odgovara

Povežite se pravom daljinskom sesijom umjesto montažom, pa pokrenite tri naredbe samo za čitanje u terminalu koji ta sesija daje. VS Code SSH vodič dokumentuje da terminal u povezanom daljinskom prozoru radi na daljinskom hostu i da ista sesija nosi debagiranje. Zatražite odobrenje za daljinske komponente ako ih organizacija ograničava.

hostname imenuje mašinu na kojoj ste, pwd pokazuje gdje radni prostor zaista živi, a command -v c++ ispisuje kompajler koji bi ljuska pokrenula. Sva tri odgovora treba da opisuju server, a ne laptop.

Oni ne dokazuju da su verzija ili konfiguracija izgradnje ispravne. Uporedite to s uputstvima samog projekta kao zaseban korak.

Pratite jednu izmjenu kroz izgradnju i debagiranje

Napravite malu izmjenu u daljinskom radnom prostoru i sačuvajte je tamo. Pokrenite dokumentovanu izgradnju iz istog direktorija i potvrdite da izlaz odražava vašu izmjenu, a ne stariju kopiju negdje drugdje. Zatim pokrenite debager kroz istu daljinsku sesiju, s putanjom do binarne datoteke i radnim direktorijem usmjerenim u stablo izgradnje servera. Poklapanje putanja izvornog koda je važno, jer debager koji vašu izmjenu pripisuje putanji na laptopu debagira drugu datoteku.

Ako cilj debagiranja prijavljuje putanje koje počinju vašim lokalnim početnim direktorijem, konfiguracija pokretanja još razmišlja lokalno.

Mrežne zavisnosti ostaju na hostu

Dohvatanje paketa, git operacija ili pokretanje testova na hostu izgradnje koristi mrežu i akreditive tog hosta, a ne VPN sesiju vašeg laptopa. To što laptop dosegne privatno ogledalo paketa ne govori ništa o tome može li server. Ako izgradnji treba registar, serveru treba ruta do njega, a to je razgovor o vatrozidu, ne podešavanje editora.

Obrnuto isto važi za testne aplikacije. Dolaženje do usluge na serveru iz vašeg preglednika zasebna je veza kojoj treba odobrena privatna putanja ili ograničeno prosljeđivanje, a ne otvoren slušalac.

Prekinite vezu bez gubitka rada

Sačuvajte i commitajte, ili barem zabilježite radno stablo, prije nego veza padne. Daljinska sesija uređivanja ne obećava da će izgradnja koja traje ili nesačuvani bafer preživjeti prekid mreže. Za sve što mora nadživjeti vašu sesiju, koristite projektom podržan tok poslova ili sesija.

Podjela rada tada je jasna: laptop je interfejs, server posjeduje radni prostor i lanac alata, a VPN daje rutu. Premještanje datoteka i premještanje izgradnje dvije su odvojene odluke.

Povezani članci