การบิลด์ C++ ระยะไกลผ่าน VPN: เก็บชุดเครื่องมือไว้บนโฮสต์
การเมานต์แชร์ไม่เหมือนกับการบิลด์ระยะไกล ตรวจสอบว่าโฮสต์ใดตอบกลับ คอมไพเลอร์ใดทำงาน และดีบักเกอร์กับเครือข่ายอยู่ที่ใด
แชร์ถูกเมานต์ เอดิเตอร์เปิดไฟล์ แต่การบิลด์ยังทำงานบนแล็ปท็อป ไม่มีข้อผิดพลาดใดปรากฏ และนั่นคือสิ่งที่ทำให้สับสนพาธระยะไกลไม่ใช่ชุดเครื่องมือระยะไกลและเอดิเตอร์ที่อ่านไฟล์ผ่านการเมานต์ได้ก็ยินดีเรียกคอมไพเลอร์ภายในเครื่องกับไฟล์นั้น ทางแก้คือย้ายพื้นที่ทำงาน ไม่ใช่แค่ไบต์
ไดเรกทอรีที่เมานต์ไม่ใช่พื้นที่ทำงาน
การเมานต์ผ่าน SSH หรือ SMB ให้พาธแก่คุณ การที่คอมไพเลอร์ ระบบบิลด์ และดีบักเกอร์มาจากฝั่งระยะไกลหรือไม่ ขึ้นอยู่กับว่าเอดิเตอร์เลือกจะรันที่ใด การตั้งค่าจำนวนมากอ่านไฟล์ระยะไกลแล้วคอมไพล์ในเครื่อง จากนั้นล้มเหลวที่ไฟล์ส่วนหัวซึ่งมีอยู่เฉพาะบนเซิร์ฟเวอร์
อาการนั้นละเอียดอ่อน การบิลด์สำเร็จด้วยผลลัพธ์บางส่วน หรือพังที่พาธ include ซึ่งดูถูกต้องในเอดิเตอร์
พิสูจน์ว่าโฮสต์ใดตอบกลับ
เชื่อมต่อด้วยเซสชันระยะไกลจริงแทนการเมานต์ แล้วรันคำสั่งอ่านอย่างเดียวสามคำสั่งในเทอร์มินัลที่เซสชันนั้นให้คุณ คู่มือSSH ของ VS Codeระบุว่าเทอร์มินัลในหน้าต่างระยะไกลที่เชื่อมต่ออยู่ทำงานบนโฮสต์ระยะไกล และเซสชันเดียวกันนั้นพาการดีบักไปด้วย ขออนุมัติสำหรับคอมโพเนนต์ระยะไกลก่อนหากองค์กรจำกัด
hostname บอกชื่อเครื่องที่คุณอยู่ pwd แสดงว่าพื้นที่ทำงานอยู่ที่ใดจริง ๆ และ command -v c++ พิมพ์คอมไพเลอร์ที่เชลล์จะรัน คำตอบทั้งสามควรอธิบายเซิร์ฟเวอร์ ไม่ใช่แล็ปท็อป
สิ่งเหล่านี้ไม่ได้พิสูจน์ว่าเวอร์ชันหรือการกำหนดค่าบิลด์ถูกต้อง เปรียบเทียบกับคำแนะนำของโปรเจกต์เองเป็นขั้นตอนแยก
ติดตามการแก้ไขหนึ่งครั้งผ่านการบิลด์และการดีบัก
แก้ไขเล็กน้อยในพื้นที่ทำงานระยะไกลและบันทึกไว้ที่นั่น รันบิลด์ตามเอกสารจากไดเรกทอรีเดียวกัน และยืนยันว่าผลลัพธ์สะท้อนการแก้ไขของคุณ ไม่ใช่สำเนาเก่าที่อื่น จากนั้นเปิดดีบักเกอร์ผ่านเซสชันระยะไกลเดียวกัน โดยพาธไบนารีและไดเรกทอรีทำงานชี้เข้าไปในทรีบิลด์ของเซิร์ฟเวอร์ การตรงกันของพาธซอร์สสำคัญ เพราะดีบักเกอร์ที่แปลงการแก้ไขของคุณเป็นพาธบนแล็ปท็อปกำลังดีบักไฟล์อื่น
หากเป้าหมายการดีบักรายงานพาธที่ขึ้นต้นด้วยไดเรกทอรีบ้านภายในเครื่องของคุณ การกำหนดค่าการเรียกใช้ยังคิดแบบภายในเครื่องอยู่
การพึ่งพาเครือข่ายอยู่กับโฮสต์
การดึงแพ็กเกจ การทำงานของ git หรือการรันทดสอบที่เริ่มบนโฮสต์บิลด์ใช้เครือข่ายและข้อมูลรับรองของโฮสต์นั้น ไม่ใช่เซสชัน VPN ของแล็ปท็อปคุณ การที่แล็ปท็อปเข้าถึงมิเรอร์แพ็กเกจส่วนตัวไม่ได้บอกว่าเซิร์ฟเวอร์ทำได้ หากบิลด์ต้องการรีจิสทรี เซิร์ฟเวอร์ต้องมีเส้นทางไปถึง และนั่นคือการคุยเรื่องไฟร์วอลล์ ไม่ใช่การตั้งค่าเอดิเตอร์
ในทางกลับกันก็ใช้กับการทดสอบแอปพลิเคชัน การเข้าถึงบริการบนเซิร์ฟเวอร์จากเบราว์เซอร์เป็นการเชื่อมต่อแยกที่ต้องมีพาธส่วนตัวที่ได้รับอนุมัติหรือการส่งต่อแบบจำกัด ไม่ใช่ตัวรับฟังที่เปิดอยู่
ตัดการเชื่อมต่อโดยไม่สูญเสียงาน
บันทึกและ commit หรืออย่างน้อยบันทึกทรีงาน ก่อนที่การเชื่อมต่อจะหลุด เซสชันแก้ไขระยะไกลไม่ได้สัญญาว่าการบิลด์ที่กำลังรันหรือบัฟเฟอร์ที่ยังไม่บันทึกจะรอดจากการขัดข้องของเครือข่าย สำหรับทุกสิ่งที่ไม่ควรหายไปพร้อมเซสชัน ให้ใช้เวิร์กโฟลว์งานหรือเซสชันที่โปรเจกต์รองรับ
การแบ่งงานจึงชัดเจน แล็ปท็อปเป็นอินเทอร์เฟซ เซิร์ฟเวอร์เป็นเจ้าของพื้นที่ทำงานและชุดเครื่องมือ และ VPN ให้เส้นทาง การย้ายไฟล์กับการย้ายการบิลด์เป็นการตัดสินใจสองเรื่องแยกกัน