Спільна тека підключена, редактор відкриває файл, а збирання все одно йде на ноутбуці. Жодної помилки немає, і саме це заплутує. Віддалений шлях — не віддалений ланцюг інструментів, і редактор, який уміє читати файл через монтування, охоче викличе для нього локальний компілятор. Рішення — перенести робочий простір, а не лише байти.

Змонтована тека — не робочий простір

Монтування через SSH або SMB дає шлях. Чи приходять компілятор, система збирання та зневаджувач з віддаленого боку, залежить від того, де редактор вирішить їх запускати. Багато конфігурацій читають віддалені файли та компілюють їх локально, а потім падають на заголовному файлі, який існує лише на сервері.

Симптом тонкий: збирання вдається з частковими результатами або ламається на шляху включення, який у редакторі виглядає правильним.

Доведіть, який хост відповідає

Підключіться справжньою віддаленою сесією, а не монтуванням, а потім виконайте три команди лише для читання в терміналі, який дає ця сесія. Посібник з SSH у VS Code документує, що термінал у підключеному віддаленому вікні працює на віддаленому хості і що та сама сесія несе зневадження. Спершу отримайте схвалення на віддалені компоненти, якщо організація їх обмежує.

hostname називає машину, на якій ви перебуваєте, pwd показує, де насправді живе робочий простір, а command -v c++ друкує компілятор, який запустила б оболонка. Усі три відповіді мають описувати сервер, а не ноутбук.

Вони не доводять, що версія або конфігурація збирання правильні. Порівняйте це з інструкціями самого проєкту як окремий крок.

Простежте одну зміну через збирання та зневадження

Внесіть невелику зміну у віддалений робочий простір і збережіть її там. Запустіть задокументоване збирання з тієї самої теки та переконайтеся, що вивід відображає вашу зміну, а не старішу копію деінде. Потім запустіть зневаджувач через ту саму віддалену сесію, спрямувавши шлях до бінарного файлу й робочу теку в дерево збирання сервера. Збіг шляхів до джерел важливий, бо зневаджувач, який зіставляє вашу зміну зі шляхом на ноутбуці, зневаджує інший файл.

Якщо ціль зневадження повідомляє про шляхи, що починаються з вашої локальної домашньої теки, конфігурація запуску все ще думає локально.

Мережеві залежності залишаються на хості

Завантаження пакета, операція git або запуск тестів на хості збирання використовує мережу й облікові дані цього хоста, а не VPN-сесію вашого ноутбука. Те, що ноутбук дістається приватного дзеркала пакетів, нічого не каже про те, чи може це сервер. Якщо збиранню потрібен реєстр, серверу потрібен маршрут до нього, і це розмова про міжмережевий екран, а не налаштування редактора.

Зворотне так само стосується тестових застосунків. Дістатися сервісу на сервері з браузера — окреме з'єднання, якому потрібен схвалений приватний шлях або обмежене переспрямування, а не відкритий слухач.

Від'єднайтеся, не втративши роботу

Збережіть і закомітьте або принаймні зафіксуйте робоче дерево, перш ніж з'єднання впаде. Віддалена сесія редагування не обіцяє, що збирання, яке триває, або незбережений буфер переживуть обрив мережі. Для всього, що має жити довше за вашу сесію, використовуйте підтримуваний проєктом процес завдань або сесій.

Тоді поділ праці очевидний: ноутбук — інтерфейс, сервер володіє робочим простором і ланцюгом інструментів, а VPN забезпечує маршрут. Переміщати файли й переміщати збирання — два різні рішення.

Схожі статті