Bina C++ dari jauh melalui VPN: kekalkan toolchain pada hos
Me-mount perkongsian bukan sama dengan membina dari jauh. Semak hos mana yang menjawab, pengkompil mana yang berjalan, dan di mana debugger serta rangkaian berada.
Perkongsian di-mount, editor membuka fail, dan binaan masih berjalan pada komputer riba. Tiada apa yang melaporkan ralat, dan itulah yang mengelirukan. Laluan jauh bukan toolchain jauh, dan editor yang boleh membaca fail melalui mount akan memanggil pengkompil setempat padanya dengan senang hati. Penyelesaiannya ialah memindahkan ruang kerja, bukan hanya bait.
Direktori yang di-mount bukan ruang kerja
Me-mount melalui SSH atau SMB memberi anda laluan. Sama ada pengkompil, sistem binaan dan debugger datang dari sisi jauh bergantung pada tempat editor memutuskan untuk menjalankannya. Banyak persediaan membaca fail jauh dan mengkompilnya secara setempat, kemudian gagal pada fail pengepala yang hanya wujud pada pelayan.
Gejalanya halus: binaan berjaya dengan hasil separa, atau pecah pada laluan include yang kelihatan betul dalam editor.
Buktikan hos mana yang menjawab
Sambung dengan sesi jauh sebenar dan bukan mount, kemudian jalankan tiga arahan baca sahaja dalam terminal yang diberikan sesi itu. Panduan SSH VS Code mendokumenkan bahawa terminal dalam tetingkap jauh yang bersambung berjalan pada hos jauh dan sesi yang sama membawa nyahpepijat. Dapatkan kelulusan untuk komponen jauh dahulu jika organisasi mengehadkannya.
hostname menamakan mesin tempat anda berada, pwd menunjukkan di mana ruang kerja sebenarnya berada, dan command -v c++ mencetak pengkompil yang akan dijalankan oleh shell. Ketiga-tiga jawapan sepatutnya menerangkan pelayan, bukan komputer riba.
Ia tidak membuktikan versi atau konfigurasi binaan itu betul. Bandingkan perkara itu dengan arahan projek itu sendiri sebagai langkah berasingan.
Ikuti satu perubahan melalui binaan dan nyahpepijat
Buat perubahan kecil dalam ruang kerja jauh dan simpan di sana. Jalankan binaan berdokumen dari direktori yang sama dan pastikan keluaran mencerminkan perubahan anda, bukan salinan lebih lama di tempat lain. Kemudian lancarkan debugger melalui sesi jauh yang sama, dengan laluan binari dan direktori kerja menghala ke pokok binaan pelayan. Padanan laluan sumber penting, kerana debugger yang menyelesaikan perubahan anda ke laluan komputer riba sedang menyahpepijat fail lain.
Jika sasaran nyahpepijat melaporkan laluan yang bermula dengan direktori rumah setempat anda, konfigurasi pelancaran masih berfikir secara setempat.
Kebergantungan rangkaian kekal pada hos
Pengambilan pakej, operasi git atau larian ujian yang dimulakan pada hos binaan menggunakan rangkaian dan kelayakan hos itu, bukan sesi VPN komputer riba anda. Komputer riba mencapai cermin pakej peribadi tidak bermakna pelayan boleh. Jika binaan memerlukan pendaftaran, pelayan memerlukan laluan ke sana, dan itu perbualan firewall, bukan tetapan editor.
Sebaliknya juga benar untuk aplikasi ujian. Mencapai perkhidmatan pada pelayan dari pelayar anda ialah sambungan berasingan yang memerlukan laluan peribadi yang diluluskan atau pemajuan terhad, bukan pendengar terbuka.
Putuskan sambungan tanpa kehilangan kerja
Simpan dan commit, atau sekurang-kurangnya catat pokok kerja, sebelum sambungan terputus. Sesi penyuntingan jauh tidak menjanjikan binaan yang sedang berjalan atau penimbal yang belum disimpan akan bertahan daripada gangguan rangkaian. Untuk apa-apa yang perlu hidup lebih lama daripada sesi anda, gunakan aliran kerja tugas atau sesi yang disokong projek.
Pembahagian kerja kemudian jelas: komputer riba ialah antara muka, pelayan memiliki ruang kerja dan toolchain, dan VPN menyediakan laluan. Memindahkan fail dan memindahkan binaan ialah dua keputusan berasingan.