CMake กำหนดค่าสำเร็จ การสร้างเริ่มภายหลัง พยายามดาวน์โหลดไฟล์ขึ้นต่อกันภายนอก และล้มเหลวที่พร็อกซี ความสำเร็จก่อนหน้านั้นอาจไม่ได้ทดสอบการดาวน์โหลดนั้นเลย

ExternalProject_Add() สร้างขั้นตอนที่สามารถทำงานระหว่างการสร้าง กระบวนการที่เริ่มขั้นตอนเหล่านั้นอาจมีสภาพแวดล้อมต่างจากเทอร์มินัลหรือ IDE ที่กำหนดค่าโปรเจกต์หลัก ความแตกต่างนี้มองข้ามได้ง่ายใน CI ซึ่งการกำหนดค่าและการคอมไพล์อาจเป็นงานแยกกัน

ระบุการดำเนินการเครือข่าย

อย่าสันนิษฐานว่าการตั้งค่าพร็อกซีสำหรับโปรแกรมเดียวกำหนดค่าทั้งสาม อ่านคำสั่งและข้อผิดพลาดของขั้นตอนที่ล้มเหลวก่อนเปลี่ยน URL ของไฟล์ขึ้นต่อกัน

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

รักษาความแตกต่างจาก FetchContent ไว้ด้วย: การเติมไฟล์ขึ้นต่อกันตามปกติเกิดขึ้นระหว่างการกำหนดค่า ดังนั้นสูตรที่ใช้ได้ที่นั่นไม่ได้พิสูจน์สภาพแวดล้อมของขั้นตอนการสร้าง ExternalProject

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

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