หากคุณมีไฟล์ต้นฉบับหลายไฟล์คุณอาจต้องการใช้การเพิ่มประสิทธิภาพลิงค์เวลาเพื่อส่งออกไฟล์บิตโค้ดหนึ่งไฟล์สำหรับโปรแกรมทั้งหมด คำตอบอื่น ๆ ที่ระบุจะทำให้คุณจบลงด้วยไฟล์ bitcode สำหรับไฟล์ต้นฉบับทุกไฟล์
คุณต้องการรวบรวมด้วย link-time-optimization แทน
clang -flto -c program1.c -o program1.o
clang -flto -c program2.c -o program2.o
และสำหรับขั้นตอนการเชื่อมโยงขั้นสุดท้ายให้เพิ่มอาร์กิวเมนต์ -Wl, -plugin-opt = also-emit-llvm
clang -flto -Wl,-plugin-opt=also-emit-llvm program1.o program2.o -o program
สิ่งนี้จะให้ทั้งโปรแกรมที่คอมไพล์และบิตโค้ดที่สอดคล้องกับมัน (program.bc) จากนั้นคุณสามารถแก้ไข program.bc ในแบบที่คุณต้องการและคอมไพล์โปรแกรมที่แก้ไขใหม่ได้ตลอดเวลาโดยทำ
clang program.bc -o program
แม้ว่าจะต้องระวังว่าคุณจำเป็นต้องรวมค่าลิงเกอร์ลิงเกอร์ที่จำเป็น (สำหรับไลบรารีภายนอก ฯลฯ ) ในขั้นตอนนี้อีกครั้ง
โปรดทราบว่าคุณต้องใช้ gold linker เพื่อให้สามารถใช้งานได้ หากคุณต้องการบังคับให้เสียงดังกราวด์ใช้ตัวเชื่อมโยงเฉพาะสร้าง symlink ให้ตัวเชื่อมโยงนั้นชื่อ "ld" ในไดเรกทอรีพิเศษชื่อ "fakebin" ที่ใดที่หนึ่งบนคอมพิวเตอร์ของคุณและเพิ่มตัวเลือก
-B/home/jeremy/fakebin
ไปยังขั้นตอนการเชื่อมโยงใด ๆ ข้างต้น