Fjernbyg af C++ over VPN: behold værktøjskæden på værten
At montere delingen er ikke det samme som at bygge eksternt. Undersøg hvilken vært der svarer, hvilken compiler der kører, og hvor debuggeren og netværket bor.
Delingen monteres, editoren åbner filen, og byggeriet kører stadig på den bærbare. Intet fejler, og netop det gør det forvirrende. En fjern sti er ikke en fjern værktøjskæde, og en editor, der kan læse en fil gennem en montering, kalder gerne den lokale compiler på den. Løsningen er at flytte arbejdsområdet, ikke kun bytene.
En monteret mappe er ikke et arbejdsområde
Montering over SSH eller SMB giver dig en sti. Om compileren, build-systemet og debuggeren kommer fra fjernsiden, afhænger af, hvor editoren beslutter at køre dem. Mange opsætninger læser fjernfiler og kompilerer dem lokalt og fejler så på en header, der kun findes på serveren.
Symptomet er subtilt: byggeriet lykkes med delvise resultater eller brækker på en include-sti, der ser rigtig ud i editoren.
Bevis hvilken vært der svarer
Forbind med en rigtig fjernsession i stedet for en montering, og kør derefter tre skrivebeskyttede kommandoer i den terminal, sessionen giver dig. VS Codes SSH-guide dokumenterer, at en terminal i et tilsluttet fjernvindue kører på fjernværten, og at den samme session bærer fejlfinding. Bed om godkendelse til fjernkomponenterne først, hvis organisationen begrænser dem.
hostname angiver maskinen, du er på, pwd viser, hvor arbejdsområdet faktisk ligger, og command -v c++ udskriver den compiler, som shellen ville køre. Alle tre svar bør beskrive serveren, ikke den bærbare.
De beviser ikke, at versionen eller build-konfigurationen er rigtig. Sammenlign det med projektets egne instruktioner som et separat skridt.
Følg en ændring gennem build og fejlfinding
Lav en lille ændring i fjernarbejdsområdet, og gem den der. Kør det dokumenterede build fra samme mappe, og bekræft, at outputtet afspejler din ændring og ikke et ældre checkout et andet sted. Start derefter debuggeren gennem den samme fjernsession, med binærstien og arbejdsmappen pegende ind i serverens build-træ. Matchende kildestier betyder noget, fordi en debugger, der opløser din ændring til en sti på den bærbare, fejlfinder en anden fil.
Hvis fejlfindingsmålet rapporterer stier, der begynder med din lokale hjemmemappe, tænker startkonfigurationen stadig lokalt.
Netværksafhængigheder bliver på værten
En pakkehentning, en git-operation eller en testkørsel startet på byggeværten bruger den værts netværk og legitimationsoplysninger, ikke din bærbares VPN-session. At den bærbare når et privat pakkespejl, siger intet om, hvorvidt serveren kan. Hvis byggeriet har brug for et register, har serveren brug for en rute dertil, og det er en brandmurssamtale, ikke en editorindstilling.
Det samme gælder omvendt for testapplikationer. At nå en tjeneste på serveren fra din browser er en separat forbindelse, der kræver en godkendt privat sti eller en begrænset videresendelse, ikke en åben lytter.
Afbryd uden at miste arbejdet
Gem og commit, eller registrér i det mindste arbejdstræet, før forbindelsen falder. En fjernredigeringssession lover ikke, at et kørende build eller en ugemt buffer overlever en netværksafbrydelse. Til alt, der skal leve længere end din session, brug projektets understøttede job- eller sessionworkflow.
Arbejdsdelingen er så eksplicit: den bærbare er en grænseflade, serveren ejer arbejdsområdet og værktøjskæden, og VPN leverer ruten. At flytte filer og at flytte byggeriet er to separate beslutninger.