Споделената папка се монтира, уредувачот ја отвора датотеката, а градењето сѐ уште се извршува на преносниот сметач. Ништо не пријавува грешка, и токму тоа збунува. Далечна патека не е далечен синџир алатки, а уредувач што може да чита датотека преку монтирање со задоволство ќе го повика локалниот компајлер врз неа. Решението е да се премести работниот простор, не само бајтите.

Монтирана папка не е работен простор

Монтирањето преку SSH или SMB ви дава патека. Дали компајлерот, системот за градење и дебагерот доаѓаат од далечната страна зависи од тоа каде уредувачот ќе реши да ги изврши. Многу поставки читаат далечни датотеки и ги компајлираат локално, а потоа паѓаат на заглавна датотека што постои само на серверот.

Симптомот е суптилен: градењето успева со делумни резултати или се крши на include патека што во уредувачот изгледа исправна.

Докажете кој хост одговара

Поврзете се со вистинска далечна сесија наместо со монтирање, потоа извршете три наредби само за читање во терминалот што таа сесија ви го дава. SSH водичот на VS Code документира дека терминалот во поврзан далечен прозорец работи на далечниот хост и дека истата сесија го носи дебагирањето. Прво побарајте одобрување за далечните компоненти ако организацијата ги ограничува.

hostname го именува сметачот на кој сте, pwd покажува каде работниот простор навистина живее, а command -v c++ го печати компајлерот што лушпата би го извршила. Сите три одговори треба да го опишат серверот, не преносниот сметач.

Тие не докажуваат дека верзијата или конфигурацијата за градење е точна. Споредете го тоа со упатствата на самиот проект како посебен чекор.

Следете една промена низ градење и дебагирање

Направете мала промена во далечниот работен простор и зачувајте ја таму. Извршете го документираното градење од истиот директориум и потврдете дека излезот ја одразува вашата промена, а не постара копија на друго место. Потоа стартувајте го дебагерот преку истата далечна сесија, со патеката до бинарната датотека и работниот директориум насочени во дрвото за градење на серверот. Совпаѓањето на патеките до изворниот код е важно, зашто дебагер што вашата промена ја врзува за патека на преносниот сметач дебагира друга датотека.

Ако целта за дебагирање пријави патеки што почнуваат со вашата локална домашна папка, конфигурацијата за стартување сѐ уште размислува локално.

Мрежните зависности остануваат на хостот

Преземање пакет, git операција или извршување тест започнато на хостот за градење го користи мрежата и акредитивите на тој хост, не VPN сесијата на вашиот преносен сметач. Тоа што преносниот сметач достигнува приватно пакетно огледало не кажува ништо за тоа дали серверот може. Ако градењето бара регистар, на серверот му треба маршрута до него, и тоа е разговор за огнен ѕид, не поставка на уредувач.

Обратното исто важи за тест апликациите. Достигнувањето на услуга на серверот од вашиот прелистувач е посебна врска што бара одобрена приватна патека или ограничено препраќање, не отворен слушател.

Исклучете се без да ја изгубите работата

Зачувајте и направете commit, или барем запишете го работното дрво, пред врската да падне. Далечната сесија за уредување не ветува дека градење во тек или незачуван бафер ќе преживее прекин на мрежата. За сѐ што треба да живее подолго од вашата сесија, користете го поддржаниот тек на задачи или сесии на проектот.

Поделбата на работата тогаш е јасна: преносниот сметач е интерфејс, серверот го поседува работниот простор и синџирот алатки, а VPN-от ја обезбедува патеката. Преместувањето датотеки и преместувањето на градењето се две одделни одлуки.

Поврзани статии