La condivisione viene montata, l’editor apre il file e la build continua a girare sul portatile. Niente segnala un errore, ed è proprio questo che confonde. Un percorso remoto non è una toolchain remota, e un editor che può leggere un file tramite un mount invocherà volentieri il compilatore locale su di esso. La soluzione è spostare lo spazio di lavoro, non solo i byte.

Una directory montata non è uno spazio di lavoro

Montare via SSH o SMB ti dà un percorso. Che compilatore, sistema di build e debugger arrivino dal lato remoto dipende da dove l’editor decide di eseguirli. Molte configurazioni leggono file remoti e li compilano in locale, poi falliscono su un header che esiste solo sul server.

Il sintomo è sottile: la build riesce con risultati parziali, o si rompe su un percorso di inclusione che nell’editor sembra corretto.

Dimostra quale host risponde

Connettiti con una vera sessione remota invece che con un mount, poi esegui tre comandi di sola lettura nel terminale che quella sessione ti dà. La guida SSH di VS Code documenta che un terminale in una finestra remota connessa gira sull’host remoto e che la stessa sessione trasporta il debug. Chiedi prima l’approvazione per i componenti remoti se l’organizzazione li limita.

hostname nomina la macchina su cui sei, pwd mostra dove vive davvero lo spazio di lavoro e command -v c++ stampa il compilatore che la shell eseguirebbe. Tutte e tre le risposte dovrebbero descrivere il server, non il portatile.

Non dimostrano che la versione o la configurazione di build siano corrette. Confrontalo con le istruzioni del progetto stesso come passaggio separato.

Segui una modifica attraverso build e debug

Fai una piccola modifica nello spazio di lavoro remoto e salvala lì. Esegui la build documentata dalla stessa directory e conferma che l’output riflette la tua modifica e non una copia più vecchia altrove. Poi avvia il debugger attraverso la stessa sessione remota, con il percorso del binario e la directory di lavoro puntati nell’albero di build del server. La corrispondenza dei percorsi sorgente conta, perché un debugger che risolve la tua modifica su un percorso del portatile sta eseguendo il debug di un altro file.

Se il target di debug segnala percorsi che iniziano con la tua directory home locale, la configurazione di avvio pensa ancora in locale.

Le dipendenze di rete restano sull’host

Un recupero di pacchetti, un’operazione git o un’esecuzione di test avviata sull’host di build usa la rete e le credenziali di quell’host, non la sessione VPN del tuo portatile. Che il portatile raggiunga un mirror privato di pacchetti non dice nulla sulla capacità del server di farlo. Se la build ha bisogno di un registro, il server ha bisogno di una rotta verso di esso, e questa è una conversazione sul firewall, non un’impostazione dell’editor.

Vale anche il contrario per le applicazioni di test. Raggiungere un servizio sul server dal browser è una connessione separata che richiede un percorso privato approvato o un inoltro limitato, non un listener aperto.

Disconnetti senza perdere il lavoro

Salva e fai commit, o almeno registra l’albero di lavoro, prima che la connessione cada. Una sessione di editing remoto non promette che una build in corso o un buffer non salvato sopravvivano a un’interruzione di rete. Per tutto ciò che deve durare più della tua sessione, usa il flusso di lavoro o di sessione supportato dal progetto.

La divisione del lavoro è allora esplicita: il portatile è un’interfaccia, il server possiede lo spazio di lavoro e la toolchain, e la VPN fornisce la rotta. Spostare file e spostare la build sono due decisioni separate.

Articoli correlati