Compilación remota de C++ por VPN: mantén a cadea de ferramentas no host
Montar o recurso compartido non é o mesmo que compilar en remoto. Comproba que host responde, que compilador se executa e onde viven o depurador e a rede.
O recurso compartido móntase, o editor abre o ficheiro e a compilación segue a executarse no portátil. Nada dá erro, e iso é xustamente o que confunde. Unha ruta remota non é unha cadea de ferramentas remota, e un editor que pode ler un ficheiro a través dunha montaxe invocará sen dubidar o compilador local sobre el. A solución é mover o espazo de traballo, non só os bytes.
Un directorio montado non é un espazo de traballo
Montar por SSH ou SMB dálle unha ruta. Que o compilador, o sistema de compilación e o depurador veñan do lado remoto depende de onde decida executalos o editor. Moitas configuracións len ficheiros remotos e compílanos en local, e despois fallan nun ficheiro de cabeceira que só existe no servidor.
O síntoma é sutil: a compilación ten éxito con resultados parciais, ou rompe nunha ruta de inclusión que no editor parece correcta.
Demostra que host responde
Conéctate cunha sesión remota real en lugar dunha montaxe e despois executa tres comandos de só lectura no terminal que esa sesión che dá. A guía de SSH de VS Code documenta que un terminal nunha xanela remota conectada se executa no host remoto e que a mesma sesión transporta a depuración. Pide antes aprobación para os compoñentes remotos se a organización os restrinxe.
hostname nomea a máquina na que estás, pwd mostra onde vive realmente o espazo de traballo e command -v c++ imprime o compilador que executaría a consola. As tres respostas deberían describir o servidor, non o portátil.
Non demostran que a versión ou a configuración de compilación sexan correctas. Compárao coas instrucións do propio proxecto como paso aparte.
Segue un cambio a través da compilación e da depuración
Fai un cambio pequeno no espazo de traballo remoto e gárdao alí. Executa a compilación documentada desde ese mesmo directorio e confirma que a saída reflicte o teu cambio e non unha copia máis antiga noutro sitio. Despois inicia o depurador pola mesma sesión remota, coa ruta do binario e o directorio de traballo apuntando á árbore de compilación do servidor. Que as rutas de orixe coincidan importa, porque un depurador que resolve o teu cambio a unha ruta do portátil está depurando outro ficheiro.
Se o obxectivo de depuración informa de rutas que comezan polo teu directorio persoal local, a configuración de inicio segue pensando en local.
As dependencias de rede quedan no host
Unha descarga de paquetes, unha operación de git ou unha execución de probas iniciada no host de compilación usa a rede e as credenciais dese host, non a sesión VPN do teu portátil. Que o portátil chegue a un espello privado de paquetes non di nada sobre se o servidor pode. Se a compilación necesita un rexistro, o servidor necesita unha ruta cara a el, e iso é unha conversa de cortalumes, non un axuste do editor.
O mesmo vale ao revés para as aplicacións de proba. Chegar a un servizo no servidor desde o teu navegador é unha conexión aparte que necesita unha ruta privada aprobada ou un reenvío restrinxido, non un porto de escoita aberto.
Desconecta sen perder o traballo
Garda e fai commit, ou polo menos rexistra a árbore de traballo, antes de que caia a conexión. Unha sesión de edición remota non promete que unha compilación en curso ou un búfer sen gardar sobreviva a unha interrupción de rede. Para todo o que deba durar máis ca a túa sesión, usa o fluxo de traballo ou de sesións que admita o proxecto.
O reparto de traballo é entón explícito: o portátil é unha interface, o servidor posúe o espazo de traballo e a cadea de ferramentas, e a VPN fornece a ruta. Mover ficheiros e mover a compilación son dúas decisións separadas.