แชร์ถูกเมานต์ เอดิเตอร์เปิดไฟล์ แต่การบิลด์ยังทำงานบนแล็ปท็อป ไม่มีข้อผิดพลาดใดปรากฏ และนั่นคือสิ่งที่ทำให้สับสนพาธระยะไกลไม่ใช่ชุดเครื่องมือระยะไกลและเอดิเตอร์ที่อ่านไฟล์ผ่านการเมานต์ได้ก็ยินดีเรียกคอมไพเลอร์ภายในเครื่องกับไฟล์นั้น ทางแก้คือย้ายพื้นที่ทำงาน ไม่ใช่แค่ไบต์

ไดเรกทอรีที่เมานต์ไม่ใช่พื้นที่ทำงาน

การเมานต์ผ่าน SSH หรือ SMB ให้พาธแก่คุณ การที่คอมไพเลอร์ ระบบบิลด์ และดีบักเกอร์มาจากฝั่งระยะไกลหรือไม่ ขึ้นอยู่กับว่าเอดิเตอร์เลือกจะรันที่ใด การตั้งค่าจำนวนมากอ่านไฟล์ระยะไกลแล้วคอมไพล์ในเครื่อง จากนั้นล้มเหลวที่ไฟล์ส่วนหัวซึ่งมีอยู่เฉพาะบนเซิร์ฟเวอร์

อาการนั้นละเอียดอ่อน การบิลด์สำเร็จด้วยผลลัพธ์บางส่วน หรือพังที่พาธ include ซึ่งดูถูกต้องในเอดิเตอร์

พิสูจน์ว่าโฮสต์ใดตอบกลับ

เชื่อมต่อด้วยเซสชันระยะไกลจริงแทนการเมานต์ แล้วรันคำสั่งอ่านอย่างเดียวสามคำสั่งในเทอร์มินัลที่เซสชันนั้นให้คุณ คู่มือSSH ของ VS Codeระบุว่าเทอร์มินัลในหน้าต่างระยะไกลที่เชื่อมต่ออยู่ทำงานบนโฮสต์ระยะไกล และเซสชันเดียวกันนั้นพาการดีบักไปด้วย ขออนุมัติสำหรับคอมโพเนนต์ระยะไกลก่อนหากองค์กรจำกัด

hostname บอกชื่อเครื่องที่คุณอยู่ pwd แสดงว่าพื้นที่ทำงานอยู่ที่ใดจริง ๆ และ command -v c++ พิมพ์คอมไพเลอร์ที่เชลล์จะรัน คำตอบทั้งสามควรอธิบายเซิร์ฟเวอร์ ไม่ใช่แล็ปท็อป

สิ่งเหล่านี้ไม่ได้พิสูจน์ว่าเวอร์ชันหรือการกำหนดค่าบิลด์ถูกต้อง เปรียบเทียบกับคำแนะนำของโปรเจกต์เองเป็นขั้นตอนแยก

ติดตามการแก้ไขหนึ่งครั้งผ่านการบิลด์และการดีบัก

แก้ไขเล็กน้อยในพื้นที่ทำงานระยะไกลและบันทึกไว้ที่นั่น รันบิลด์ตามเอกสารจากไดเรกทอรีเดียวกัน และยืนยันว่าผลลัพธ์สะท้อนการแก้ไขของคุณ ไม่ใช่สำเนาเก่าที่อื่น จากนั้นเปิดดีบักเกอร์ผ่านเซสชันระยะไกลเดียวกัน โดยพาธไบนารีและไดเรกทอรีทำงานชี้เข้าไปในทรีบิลด์ของเซิร์ฟเวอร์ การตรงกันของพาธซอร์สสำคัญ เพราะดีบักเกอร์ที่แปลงการแก้ไขของคุณเป็นพาธบนแล็ปท็อปกำลังดีบักไฟล์อื่น

หากเป้าหมายการดีบักรายงานพาธที่ขึ้นต้นด้วยไดเรกทอรีบ้านภายในเครื่องของคุณ การกำหนดค่าการเรียกใช้ยังคิดแบบภายในเครื่องอยู่

การพึ่งพาเครือข่ายอยู่กับโฮสต์

การดึงแพ็กเกจ การทำงานของ git หรือการรันทดสอบที่เริ่มบนโฮสต์บิลด์ใช้เครือข่ายและข้อมูลรับรองของโฮสต์นั้น ไม่ใช่เซสชัน VPN ของแล็ปท็อปคุณ การที่แล็ปท็อปเข้าถึงมิเรอร์แพ็กเกจส่วนตัวไม่ได้บอกว่าเซิร์ฟเวอร์ทำได้ หากบิลด์ต้องการรีจิสทรี เซิร์ฟเวอร์ต้องมีเส้นทางไปถึง และนั่นคือการคุยเรื่องไฟร์วอลล์ ไม่ใช่การตั้งค่าเอดิเตอร์

ในทางกลับกันก็ใช้กับการทดสอบแอปพลิเคชัน การเข้าถึงบริการบนเซิร์ฟเวอร์จากเบราว์เซอร์เป็นการเชื่อมต่อแยกที่ต้องมีพาธส่วนตัวที่ได้รับอนุมัติหรือการส่งต่อแบบจำกัด ไม่ใช่ตัวรับฟังที่เปิดอยู่

ตัดการเชื่อมต่อโดยไม่สูญเสียงาน

บันทึกและ commit หรืออย่างน้อยบันทึกทรีงาน ก่อนที่การเชื่อมต่อจะหลุด เซสชันแก้ไขระยะไกลไม่ได้สัญญาว่าการบิลด์ที่กำลังรันหรือบัฟเฟอร์ที่ยังไม่บันทึกจะรอดจากการขัดข้องของเครือข่าย สำหรับทุกสิ่งที่ไม่ควรหายไปพร้อมเซสชัน ให้ใช้เวิร์กโฟลว์งานหรือเซสชันที่โปรเจกต์รองรับ

การแบ่งงานจึงชัดเจน แล็ปท็อปเป็นอินเทอร์เฟซ เซิร์ฟเวอร์เป็นเจ้าของพื้นที่ทำงานและชุดเครื่องมือ และ VPN ให้เส้นทาง การย้ายไฟล์กับการย้ายการบิลด์เป็นการตัดสินใจสองเรื่องแยกกัน

บทความที่เกี่ยวข้อง