ความแตกต่างระหว่างการสร้างและการรวบรวมคืออะไร?


คำตอบ:


34

การคอมไพล์เป็นส่วนหนึ่งของกระบวนการสร้าง

กระบวนการสร้างอาจรวมถึงการทดสอบการบรรจุและกิจกรรมอื่นนอกเหนือจากการรวบรวม


19

"การสร้าง" เป็นคำที่ค่อนข้างทั่วไปและสามารถอ้างถึงสิ่งที่จำเป็นต้องใช้ในการเปลี่ยนจากแหล่งข้อมูลที่แก้ไขได้ (ซอร์สโค้ดสคริปต์ไฟล์ข้อมูลดิบ ฯลฯ ) ไปยังผลิตภัณฑ์ซอฟต์แวร์ที่สามารถเปลี่ยนแปลงได้ อาคารสามารถ (และมักจะ) เกี่ยวข้องกับหลายขั้นตอนเช่นการประมวลผลล่วงหน้าการรวบรวมการเชื่อมโยงการแปลงไฟล์ข้อมูลการเรียกใช้การทดสอบอัตโนมัติบรรจุภัณฑ์และอื่น ๆ

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


9

คำเหล่านี้มักจะใช้แทนกันได้ แต่ฉันจะแยกความแตกต่างด้วยวิธีต่อไปนี้:

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

ดังนั้นการรวบรวมจึงเป็นส่วนหนึ่งของการสร้าง


1
"การสร้างเสร็จสิ้นเมื่อเตรียมแอปพลิเคชันสำหรับการปล่อย" - อย่าบอกว่าการรวมกลุ่มอย่างต่อเนื่อง;) หรือผู้ใช้ตัวยงอื่น ๆ ของการสร้างอัตโนมัติสำหรับเรื่องนั้น

1
@delnan: เห็นด้วย การรวมอย่างต่อเนื่องจะสร้าง "การสร้าง" จำนวนมากตลอดช่วงอายุของแอปพลิเคชัน อย่างไรก็ตามการสร้างใด ๆ หรือทั้งหมดเหล่านี้สามารถนำมาใช้ในการเตรียมการเผยแพร่สู่สาธารณะ ขึ้นอยู่กับกระบวนการสร้างการทดสอบและการอนุมัติของคุณ
เบอร์นาร์ด

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

2
@delnan - สิ่งที่เกี่ยวกับการสร้างที่ล้มเหลวในการทดสอบหรือไม่ ตามมาตรฐานของการส่งมอบอย่างต่อเนื่องแออัดก็คือการสร้างแต่ไม่พร้อมสำหรับการปล่อย :)
Oded

2

การคอมไพล์ทำได้โดยคอมไพเลอร์บิลด์สามารถเป็นกระบวนการที่ซับซ้อนมากขึ้น

เช่น. ใน C ++ เพื่อสร้างบิลด์ของโครงการที่คุณต้องการ preprocessor (การประมวลผลไฟล์ต้นฉบับ); คอมไพเลอร์ (รวบรวมไฟล์ต้นฉบับ); linker (รวมทุกอย่างไว้ในที่ปฏิบัติการได้ - โค้ดที่รวบรวม, ไอคอน, สตริง, ทรัพยากรอื่น ๆ เข้าด้วยกัน)

ดังนั้นการรวบรวมโดยทั่วไปคือการแปลรหัสที่เขียนในภาษาหนึ่งเป็นอีกภาษาหนึ่ง (เช่นรหัสเครื่อง)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.