Nuotolinis C++ kompiliavimas per VPN: palikite įrankių grandinę hoste
Bendro katalogo prijungimas nėra tas pats kaip nuotolinis kompiliavimas. Patikrinkite, kuris hostas atsako, kuris kompiliatorius vykdomas ir kur gyvena derintuvas bei tinklas.
Bendras katalogas prijungiamas, redaktorius atidaro failą, o kompiliavimas vis tiek vyksta nešiojamajame kompiuteryje. Jokia klaida nerodoma, ir būtent tai klaidina. Nuotolinis kelias nėra nuotolinė įrankių grandinė, o redaktorius, galintis skaityti failą per prijungimą, mielai iškvies jam vietinį kompiliatorių. Sprendimas – perkelti darbo sritį, o ne vien baitus.
Prijungtas katalogas nėra darbo sritis
Prijungimas per SSH ar SMB duoda jums kelią. Ar kompiliatorius, kompiliavimo sistema ir derintuvas ateina iš nuotolinės pusės, priklauso nuo to, kur redaktorius nuspręs juos vykdyti. Daugelis nustatymų skaito nuotolinius failus ir kompiliuoja juos vietoje, o paskui nepavyksta ties antraštės failu, kuris egzistuoja tik serveryje.
Simptomas subtilus: kompiliavimas pavyksta su daliniais rezultatais arba sugenda ties include keliu, kuris redaktoriuje atrodo teisingas.
Įrodykite, kuris hostas atsako
Prisijunkite tikra nuotoline sesija, o ne prijungimu, tada tos sesijos duodamame terminale įvykdykite tris tik skaitymo komandas. VS Code SSH vadovas dokumentuoja, kad prijungto nuotolinio lango terminalas veikia nuotoliniame hoste ir kad ta pati sesija neša derinimą. Jei organizacija riboja nuotolinius komponentus, pirmiausia gaukite jų patvirtinimą.
hostname įvardija mašiną, kurioje esate, pwd parodo, kur darbo sritis iš tikrųjų yra, o command -v c++ išspausdina kompiliatorių, kurį paleistų apvalkalas. Visi trys atsakymai turėtų apibūdinti serverį, o ne nešiojamąjį kompiuterį.
Jie neįrodo, kad versija ar kompiliavimo konfigūracija teisinga. Palyginkite tai su paties projekto instrukcijomis kaip atskirą žingsnį.
Sekite vieną pakeitimą per kompiliavimą ir derinimą
Atlikite nedidelį pakeitimą nuotolinėje darbo srityje ir išsaugokite jį ten. Paleiskite dokumentuotą kompiliavimą iš to paties katalogo ir patvirtinkite, kad išvestis atspindi jūsų pakeitimą, o ne senesnę kopiją kitur. Tada paleiskite derintuvą per tą pačią nuotolinę sesiją, nukreipdami binario failo kelią ir darbo katalogą į serverio kompiliavimo medį. Šaltinio kelių sutapimas svarbus, nes derintuvas, kuris jūsų pakeitimą priskiria nešiojamojo kompiuterio keliui, derina kitą failą.
Jei derinimo taikinys praneša kelius, prasidedančius jūsų vietiniu namų katalogu, paleidimo konfigūracija vis dar mąsto vietiškai.
Tinklo priklausomybės lieka hoste
Paketo gavimas, git operacija ar testų vykdymas, pradėtas kompiliavimo hoste, naudoja to hosto tinklą ir prisijungimo duomenis, o ne jūsų nešiojamojo kompiuterio VPN sesiją. Tai, kad nešiojamasis kompiuteris pasiekia privatų paketų veidrodį, nieko nesako apie tai, ar serveris gali. Jei kompiliavimui reikia registro, serveriui reikia maršruto į jį, ir tai yra ugniasienės pokalbis, o ne redaktoriaus nustatymas.
Atvirkščiai tas pats galioja bandomosioms programoms. Pasiekti serverio paslaugą iš naršyklės yra atskiras ryšys, kuriam reikia patvirtinto privataus kelio arba riboto persiuntimo, o ne atviro klausytuvo.
Atsijunkite nepraradę darbo
Išsaugokite ir commit'inkite, arba bent užrašykite darbo medį, prieš nutrūkstant ryšiui. Nuotolinė redagavimo sesija nežada, kad vykdomas kompiliavimas ar neišsaugotas buferis išgyvens tinklo pertraukimą. Viskam, kas turi gyvuoti ilgiau už jūsų sesiją, naudokite projekto palaikomą užduočių ar sesijų eigą.
Darbo pasidalijimas tada aiškus: nešiojamasis kompiuteris yra sąsaja, serveris valdo darbo sritį ir įrankių grandinę, o VPN teikia maršrutą. Failų perkėlimas ir kompiliavimo perkėlimas yra du atskiri sprendimai.