2010-11-10 10 views
5

में बाइनरी ऑब्जेक्ट फ़ाइल बदलते समय हर बार जब मैं बिल्ड करता हूं, तो G ++ GNU कंपाइलर का उपयोग करते समय संकलन करते समय, मुझे एक अलग बाइनरी ऑब्जेक्ट फ़ाइल मिलती है। क्या एक संकलन विकल्प है जो मुझे हर बार एक ही बाइनरी देगा।प्रत्येक बिल्ड

+0

[जी के साथ नियतात्मक द्विआधारी उत्पादन ++] की संभावित डुप्लिकेट (http://stackoverflow.com/questions/14653874/deterministic-binary-output-with-g) –

उत्तर

10

जीसीसी मानव पेज से कॉपी किया गया:

-frandom-बीज = स्ट्रिंग
यह विकल्प एक बीज है कि जीसीसी जब यह अन्यथा उपयोग यादृच्छिक संख्या का उपयोग करता है प्रदान करता है। यह कुछ संकलित नामों को उत्पन्न करने के लिए उपयोग किया जाता है जो प्रत्येक संकलित फ़ाइल में अलग होना चाहिए। यह का उपयोग कवरेज डेटा फ़ाइलों और ऑब्जेक्ट फ़ाइलों में अद्वितीय टिकटों को रखने के लिए भी किया जाता है जो उत्पन्न करते हैं। आप पुनर्नवीनीकरण समान ऑब्जेक्ट फ़ाइलों का उत्पादन करने के लिए -frandom-seed विकल्प का उपयोग कर सकते हैं।

स्ट्रिंग आपके द्वारा संकलित प्रत्येक फ़ाइल के लिए अलग होना चाहिए।

+0

धन्यवाद, यह मेरे लिए काम करता प्रतीत होता है। – user502603

0

आपको make का बेहतर उपयोग करना चाहिए। इस तरह यदि आपका स्रोत नहीं बदला है, तो संकलन छोड़ा जाएगा, इसलिए ऑब्जेक्ट फ़ाइलों को बदला नहीं जाएगा।

संपादित करें: कुछ सोचने के बाद, मेकफ़ाइल के साथ आपकी टिप्पणी को संबोधित करना संभव है जो प्रीप्रोकैसिंग और वास्तविक संकलन को अलग करता है। और कुछ गंदे चालें।

उदाहरण makefile:

all: source 

source: source.i.cpp 
    @cmp -s source.i.cpp source.i.prev || g++ source.i.cpp -o source 
    @touch source 
    @cp source.i.cpp source.i.prev 

source.i.cpp: source.cpp 
    @g++ -E source.cpp >source.i.cpp 

कृपया ध्यान दें निष्पादन के समय बदल गया है, लेकिन सामग्री नहीं है (यदि आप केवल टिप्पणियों, न कि वास्तविक कोड बदल)।

+0

मैं स्रोत से बदल रहा हूँ, लेकिन केवल टिप्पणी जोड़ने में बदलाव नहीं कार्यक्रम। क्या आपके पास इस मामले का समाधान है? – user502603

+0

असल में नहीं, स्रोत फ़ाइल बदलने का अर्थ पुन: संकलन है :-(मेक और अन्य बिल्ड टूल्स समझने के लिए इतने चालाक नहीं हैं कि केवल टिप्पणियां बदल दी गई हैं। – Vlad

+0

आपके मामले को कवर करने के लिए उत्तर बढ़ाया :) – Vlad

संबंधित मुद्दे