สองบิตที่รวดเร็วของฉันในเรื่องนี้: 10 (เรื่องตลกที่น่ากลัวขออภัย)
หากต้องการขยายออกไปเล็กน้อยไปที่นี่:
1- ห้องสมุดคงสามารถขึ้นอยู่กับคงที่ห้องสมุดอื่นไม่มีอะไรหรือแม้กระทั่งห้องสมุดแบบไดนามิก: ในสองกรณีแรกรหัสทั้งหมดสำหรับห้องสมุดคงใหม่จะถูกรวมอยู่ใน SLL ใหม่ (Static Link Library) แต่ตัวเลือกที่ 3 ขึ้นอยู่กับสภาพแวดล้อมที่อาจนำไปสู่ SLL ที่มีหนึ่งในผลลัพธ์ต่อไปนี้
- มันจะมีโค้ดสแตติกที่จำเป็นซึ่งรวบรวมจาก DLL (Dynamic Link Library)
- หรือที่น่ากลัวกว่านั้นคือคุณจะมีไลบรารี่คงที่เมื่อรวมอยู่ในโครงการจะทำให้ความต้องการในการจัดส่งด้วย DLL ทำลายจุดเชื่อมโยงคงที่ทั้งหมด
ดังนั้นในระยะสั้นคุณสามารถเชื่อมโยงไลบรารีคงที่กับไลบรารีแบบคงที่ได้
2- หาก lib1 และ lib2 เป็นทั้งแบบคงที่และ lib1 เชื่อมโยงกับ lib2 แล้วการทำงานทั้งหมดของ lib2 จะมีให้ภายใน lib1 โดยไม่จำเป็นต้องใส่ lib2 เนื่องจาก lib2 จะเชื่อมโยงแบบคงที่ภายใน lib1 (คิดว่าตุ๊กตารัสเซียกับ lib2 มีขนาดเล็กลง)
ในสถานการณ์ที่คุณอธิบายจะต้องมีฟังก์ชั่นที่ไม่ต่อเนื่องที่มีอยู่ในแต่ละไฟล์ที่คุณต้องรวมซึ่งไม่ได้เชื่อมโยงแบบคงที่จึงจำเป็นต้องมีหลายไฟล์มิฉะนั้นคุณจะมีไฟล์เดียวที่จะรวมและคุณจะดี
ทำสิ่งต่อไปนี้: ไฟล์. h หนึ่งไฟล์ที่มีการอ้างอิงถึง 6 ไลบรารีที่ลิงก์แบบสแตติก: คุณจะต้องรวม 7 ไฟล์ในโครงการของคุณเพื่อรับฟังก์ชั่นเต็มรูปแบบ
หนึ่ง SLL ซึ่งสร้างขึ้นจากไฟล์. h ที่กล่าวมานั้นต้องการเพียง SLL ใหม่เท่านั้นที่จะถูกรวมไว้สำหรับการลิงก์ที่คอมไพล์:
หวังว่าจะช่วยได้และฉันเข้าใจสิ่งที่คุณถาม