दिलचस्प पोस्ट
अपाचे स्पार्क 1.3 में डाटा फ़्रेम में एक कॉलम जोड़ें SetupDiGetDeviceProperty उपयोग उदाहरण बिखराव के लिए matplotlib कलरबार एक पायथन डायस को संशोधित करते हुए इसे ऊपर चलना बहु थ्रेडेड पायथन एप और सॉकेट कनेक्शन के साथ समस्या पायथन एक संदर्भ से पूर्णांक गुजर रहा है जावा 8 में इंडेक्स के साथ एक स्ट्रीम पर पुनरावृति करने का एक संक्षिप्त तरीका है? PHP के साथ फाइल की शुरुआत में लिखना चाहिए एक्स, वाई एक्सिस-जेफ्री चार्ट के लिए रेंज सेट करना खाली स्ट्रिंग के साथ गैर-संख्यात्मक बदलें मैक ओएस एक्स तेंदुए पर जीसीसी 4.2 को डिफॉल्ट कंपाइलर के रूप में सेट करना एक अनियमित ग्रिड पर समरूप बनाना सर्वश्रेष्ठ जीडब्ल्यूटी विजेट लाइब्रेरी? Linux, C, C ++ में सिस्टम आदेश जारी करना कॉन्फ़िगर करें: त्रुटि: सी कंपाइलर निष्पादनयोग्य नहीं बना सकता

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

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

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

वेब के समाधान से एकत्रित समाधान "सीपीयू वास्तुकला संकलन-समय का पता लगा रहा है"

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

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

 #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" फ़ाइल करता है। फिर आप उस प्रोग्राम को अपनी बिल्ड प्रक्रिया के साथ एकीकृत कर सकते हैं।