Compilação remota de C++ por VPN: mantenha a toolchain no host
Montar a partilha não é o mesmo que compilar remotamente. Verifique qual host responde, qual compilador é executado e onde vivem o depurador e a rede.
A partilha é montada, o editor abre o ficheiro e a compilação continua a correr no portátil. Nada indica erro, e é precisamente isso que confunde. Um caminho remoto não é uma toolchain remota, e um editor que consegue ler um ficheiro através de uma montagem invoca sem hesitar o compilador local sobre ele. A solução é mover o espaço de trabalho, não apenas os bytes.
Um diretório montado não é um espaço de trabalho
Montar por SSH ou SMB dá-lhe um caminho. Se o compilador, o sistema de compilação e o depurador vêm do lado remoto depende de onde o editor decide executá-los. Muitas configurações leem ficheiros remotos e compilam-nos localmente, e depois falham num cabeçalho que só existe no servidor.
O sintoma é subtil: a compilação tem sucesso com resultados parciais, ou quebra num caminho de inclusão que parece correto no editor.
Prove qual host responde
Ligue-se com uma sessão remota real em vez de uma montagem e depois execute três comandos apenas de leitura no terminal que essa sessão lhe dá. O guia SSH do VS Code documenta que um terminal numa janela remota ligada corre no host remoto e que a mesma sessão transporta a depuração. Peça primeiro aprovação para os componentes remotos se a organização os restringir.
hostname indica a máquina onde está, pwd mostra onde vive realmente o espaço de trabalho e command -v c++ imprime o compilador que a shell executaria. As três respostas devem descrever o servidor, não o portátil.
Não provam que a versão ou a configuração de compilação estejam corretas. Compare isso com as instruções do próprio projeto como passo separado.
Acompanhe uma alteração através da compilação e da depuração
Faça uma alteração pequena no espaço de trabalho remoto e guarde-a lá. Execute a compilação documentada a partir do mesmo diretório e confirme que a saída reflete a sua alteração e não uma cópia mais antiga noutro sítio. Depois inicie o depurador pela mesma sessão remota, com o caminho do binário e o diretório de trabalho a apontar para a árvore de compilação do servidor. A correspondência dos caminhos de origem importa, porque um depurador que resolve a sua alteração para um caminho do portátil está a depurar outro ficheiro.
Se o alvo de depuração reportar caminhos que começam no seu diretório pessoal local, a configuração de arranque ainda pensa localmente.
As dependências de rede ficam no host
Uma obtenção de pacotes, uma operação git ou uma execução de testes iniciada no host de compilação usa a rede e as credenciais desse host, não a sessão VPN do seu portátil. O portátil chegar a um espelho privado de pacotes não diz nada sobre se o servidor consegue. Se a compilação precisa de um registo, o servidor precisa de uma rota até ele, e isso é uma conversa de firewall, não um ajuste do editor.
O contrário também se aplica às aplicações de teste. Chegar a um serviço no servidor a partir do seu navegador é uma ligação separada que exige um caminho privado aprovado ou um encaminhamento restrito, não um ouvinte aberto.
Desligue sem perder o trabalho
Guarde e faça commit, ou pelo menos registe a árvore de trabalho, antes de a ligação cair. Uma sessão de edição remota não promete que uma compilação em curso ou um buffer não guardado sobrevivam a uma interrupção de rede. Para tudo o que tenha de durar mais do que a sua sessão, use o fluxo de trabalho ou de sessão suportado pelo projeto.
A divisão de trabalho é então explícita: o portátil é uma interface, o servidor possui o espaço de trabalho e a toolchain, e a VPN fornece a rota. Mover ficheiros e mover a compilação são duas decisões separadas.