संकलन झंडे तक पहुंचने के लिए एक तरीका है (उदाहरण के लिए, परिभाषित स्थिरांक) जिसके साथ संकलक संकलित किए जा रहे कोड के अंदर संकलक चलाया गया था।जी ++: संकलित किए जा रहे कोड के अंदर संकलन झंडे तक पहुंचने का कोई तरीका है?
उदाहरण के लिए, मुझे एक ऐसा प्रोग्राम चाहिए जो झंडे लिखता है जिसके साथ इसे संकलित किया गया था।
int main(){
std::cout << COMPILE_FLAGS << std::endl;
}
क्या ऐसे स्थिरांक जीसीसी/जी ++ के लिए मौजूद हैं? या इससे भी बेहतर: क्या वहां स्थिरांक हैं जिन्हें जीसीसी और क्लैंग दोनों में परिभाषित किया गया है?
मैं विशेष रूप से अनुकूलन स्तर और -march
ध्वज के मूल्य की जांच करने में रूचि रखता हूं। इसलिए, यदि कोई स्थिरांक नहीं है जो सभी झंडे दिखाता है, तो कम से कम वे हैं जो इन मानों को प्रदर्शित करते हैं?
यदि कुछ और नहीं है, तो आप एक मेकफ़ाइल का उपयोग करके एक साथ कुछ हैक करने में सक्षम होना चाहिए जो एक साथ ऑप्टिमाइज़ेशन ध्वज सेट करता है, और एक हेडर फ़ाइल को स्थिर करता है। – Degustaf
मैं कोड के साथ संग्रहीत डीबग जानकारी में इसे देखने की कोशिश करता हूं, अगर यह ऐसी जानकारी के साथ संकलित है। आम तौर पर मैं कहूंगा कि कोई रास्ता नहीं है, क्योंकि हम मशीन कोड को संकलित करते हैं, और ज्यादातर मामलों में रन-टाइम पर यह पूरी तरह से अनावश्यक जानकारी होगी। मेरा मतलब है कि अधिकांश झंडे प्रभाव डालते हैं कि मशीन-निर्देश चुने जाते हैं और कौन सा अनुकूलन किया जा सकता है, ताकि आप मशीन-कोड से कुछ झंडे को कम कर सकें। – midor