यदि आपके पास कई स्रोत फ़ाइलें हैं, तो आप संभवतः पूरे कार्यक्रम के लिए एक बिटकोड फ़ाइल को आउटपुट करने के लिए लिंक-टाइम-ऑप्टिमाइज़ेशन का उपयोग करना चाहते हैं। दिए गए अन्य उत्तर आपको हर स्रोत फ़ाइल के लिए बिटकोड फ़ाइल के साथ समाप्त करने का कारण बनेंगे।
इसके बजाय, आप लिंक-टाइम-ऑप्टिमाइज़ेशन के साथ संकलन करना चाहते हैं
clang -flto -c program1.c -o program1.o
clang -flto -c program2.c -o program2.o
और अंतिम लिंकिंग चरण के लिए, तर्क जोड़ें -ll, -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
हालाँकि इस बात से अवगत रहें कि आपको इस कदम पर किसी भी आवश्यक लिंकर झंडे (बाहरी पुस्तकालयों आदि के लिए) को शामिल करने की आवश्यकता है।
ध्यान दें कि आपको काम करने के लिए सोने के लिंकर का उपयोग करने की आवश्यकता है। यदि आप किसी विशिष्ट लिंकर का उपयोग करने के लिए क्लेंग को बाध्य करना चाहते हैं, तो अपने कंप्यूटर पर कहीं और "विशेष" निर्देशिका में "ld" नाम के उस लिंकर के लिए एक सिमलिंक बनाएं, और विकल्प जोड़ें
-B/home/jeremy/fakebin
ऊपर दिए गए किसी भी लिंकिंग चरण में।