दिलचस्प पोस्ट
Regex के साथ बैकस्लैश से बच नहीं सकता है? सूचियों में डुप्लिकेट निकालना लिनक्स उबंटू के तहत स्टार्टअप पर स्वचालित रूप से प्रोग्राम चलाएं एक नया इरादा बनाने के बजाय अधिसूचना जारी करने के लिए कैसे करें? एफपीएमसीआईजी झंडा क्या करता है? जेएसओएन फ़ाइल जावा पार्सिंग फ़ोल्डर या फ़ाइल का आकार प्राप्त करें अपेक्षित प्रतिसाद कोड 220, लेकिन "" लार्ज में संदेश में "" कोड मिला क्या "एक गैर अंकन को डी-रेफरेंसिंग" से बिल्कुल सही है? कैसे जवाफिक्स में किसी छवि का विशिष्ट भाग दिखाता है MVC में मानक डेटाटैबल्स प्रदर्शित करना कैसे प्रतिक्रिया रूटर v4 में इतिहास को धक्का? सी # DLL config फाइल मीडिया प्रश्नों में "स्क्रीन" और "केवल स्क्रीन" में क्या अंतर है? जावास्क्रिप्ट में नेस्टेड लूप को कैसे तोड़ सकता है?

सीपीयू वास्तुकला संकलन-समय का पता लगा रहा है

C या C ++ कोड को संकलित करते समय सीपीयू वास्तुकला का पता लगाने का सबसे विश्वसनीय तरीका क्या है? जहां तक ​​मैं बता सकता हूं, अलग-अलग _M_X86 स्वयं के गैर-मानक प्रीप्रोसेसर परिभाषाएं ( _M_X86 में MSVS, __i386__ , जीसीसी में __arm__ आदि) हैं।

क्या वास्तुकला का पता लगाने का कोई मानक तरीका है जिसके लिए मैं निर्माण कर रहा हूं? यदि नहीं, तो विभिन्न कंपाइलरों के लिए ऐसी परिभाषाओं की एक व्यापक सूची के लिए कोई स्रोत है, जैसे सभी बॉयलरप्लेट #ifdef s के साथ शीर्ष लेख?

Solutions Collecting From Web of "सीपीयू वास्तुकला संकलन-समय का पता लगा रहा है"

यहां पूर्व परिभाषित वास्तुकला मैक्रोज़ और अन्य प्रकार के पूर्व-परिभाषित मैक्रोज़ के बारे में कुछ जानकारी दी गई है।

कोई इंटर कंपाइलर मानक नहीं है, लेकिन प्रत्येक संकलक काफी अनुरूप है। आप अपने लिए एक हेडर बना सकते हैं जो ऐसा कुछ है:

 #if MSVC #ifdef _M_X86 #define ARCH_X86 #endif #endif #if GCC #ifdef __i386__ #define ARCH_X86 #endif #endif 

व्यापक सूची में कोई बात नहीं है, क्योंकि हजारों कंपलर हैं लेकिन व्यापक उपयोग में केवल 3-4 (माइक्रोसॉफ्ट सी ++, जीसीसी, इंटेल सीसी, शायद टेनडा?) बस तय करें कि आपका एप्लिकेशन किस कम्पाइलर का समर्थन करेगा, उनकी # परिभाषाओं को सूचीबद्ध करें और आवश्यकतानुसार अपने हेडर को अपडेट करें।

मानक कुछ भी नहीं है ब्रायन हुक ने अपने "पोर्टेबल ओपन सोर्स हार्नेस" में इनमें से एक गुच्छा का दस्तावेजीकरण किया और यहां तक ​​कि उन्हें कुछ सुसंगत और प्रयोग करने योग्य (उस बारे में ymmv) बनाने की कोशिश की। इस साइट पर पॉश एच शीर्षलेख देखें:

ध्यान दें, कुछ समय पहले डोज हमले के कारण उपरोक्त लिंक में आपको कुछ फर्जी यूजर आईडी / पासवर्ड दर्ज करने की आवश्यकता हो सकती है।

यदि आप किसी विशेष प्लेटफॉर्म पर सभी उपलब्ध सुविधाओं को डंप करना चाहते हैं, तो आप जीसीसी को इस तरह चला सकते हैं:

gcc -march=native -dM -E - </dev/null

यह मार्कोस को #define __SSE3__ 1 , #define __AES__ 1 इत्यादि की तरह #define __SSE3__ 1 दिया जाएगा।

यदि आपको सीपीयू फीचर्स का एक अच्छा पता लगाने की ज़रूरत है, तो सबसे अच्छा तरीका यह भी है कि सीपीयूआईडी कार्यक्रम भी भेज दिया जाए जो सीडीयू द्वारा समर्थित सुविधाओं के सेट में stdout या कुछ "cpu_config.h" फ़ाइल करता है। फिर आप उस प्रोग्राम को अपनी बिल्ड प्रक्रिया के साथ एकीकृत कर सकते हैं।