मैं कैसे पता लगा सकता हूं कि -march
डिफ़ॉल्ट तर्क वर्तमान आर्किटेक्चर के लिए है यदि मैं कोई आपूर्ति नहीं करता हूं?वर्तमान जीसीसी आर्किटेक्चर प्राप्त करना
उत्तर
gcc -dumpmachine
आपको लक्ष्य ट्रिपलट देता है, उदा। x86_64-unknown-linux-gnu
gcc -v
से पता चलता जीसीसी एक --with-arch
विकल्प के साथ कॉन्फ़िगर किया गया था (या --with-arch-32
और/या --with-arch-64
) तो है कि क्या डिफ़ॉल्ट होगा।
--with-arch
विकल्प के बिना (और यदि उपयोग में कोई कस्टम चश्मा फ़ाइल नहीं है) तो उपयोग किया गया आर्क लक्ष्य के लिए डिफ़ॉल्ट होगा।
86 के लिए, करने के लिए और सहित जीसीसी 4.4 अप, 32-बिट के लिए डिफ़ॉल्ट जीसीसी 4.5 और बाद के संस्करणों के साथ -march=i386
और के लिए 64-बिट -march=x86-64
था (अंडरस्कोर के बजाय हाइफन ध्यान दें।)
x86 के लिए डिफ़ॉल्ट आर्क लक्ष्य लक्ष्य से अनुमानित है यानी i586-pc-linux-gnu
के लिए कॉन्फ़िगर करना मतलब है कि डिफ़ॉल्ट -march=i586
है, core2-pc-linux-gnu
के लिए कॉन्फ़िगर करना डिफ़ॉल्ट है -march=core2
।
कुछ अन्य प्लेटफार्म भी लक्ष्य ट्रिपलेट से डिफ़ॉल्ट कमान का अनुमान लगाते हैं (और जीसीसी 4.4 से पहले किए गए हैं) उदा। ultrasparc2-sun-solaris2.10
का अर्थ है -march=ultrasparc2
।
'gcc -dumpmachine' विकल्प सही है। एक और उदाहरण है कि स्टैक ओवरफ्लो पर दो दूसरी खोज कैसे जीसीसी मैन पेज के एक और पढ़ने से बचाती है! –
मैंने मैनुअल पढ़ा है, और इसका आनंद लिया है। मेरा मतलब था कि आप मैन पेज के माध्यम से जाने के बजाय अधिक मानव खोज शब्दों के साथ स्टैक ओवरफ्लो खोज सकते हैं। उदाहरण के लिए, मैंने पहले 'gcc -dumpmachine' का उपयोग किया है लेकिन तर्क नाम याद नहीं कर सका। हालांकि मैं कभी-कभी सही तर्क के लिए मैन पेज में एक आसान खोज नहीं कर सकता। हो सकता है कि मुझे बदलना चाहिए "से" किसी अन्य खोज से बचाता है "; –
आह हां, काफी उचित है, मैन्युअल में खोज करने के लिए सटीक शब्द को याद करने से निश्चित रूप से आसान है, क्योंकि यदि आप इसे याद कर सकते हैं तो आप ' इसे देखने की जरूरत नहीं है! –
आदेश
gcc -v
चल रहा है कुछ इस तरह दिखाई देगा:
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/4.7.1/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /build/src/gcc-4.7.1/configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ --enable-shared --enable-threads=posix --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-clocale=gnu --disable-libstdcxx-pch --enable-libstdcxx-time --enable-gnu-unique-object --enable-linker-build-id --with-ppl --enable-cloog-backend=isl --disable-ppl-version-check --disable-cloog-version-check --enable-lto --enable-gold --enable-ld=default --enable-plugin --with-plugin-ld=ld.gold --with-linker-hash-style=gnu --enable-multilib --disable-libssp --disable-build-with-cxx --disable-build-poststage1-with-cxx --enable-checking=release
Thread model: posix
gcc versie 4.7.1 (GCC)
Target:
लाइन तुम क्या चाहते है। आप इससे पर्याप्त जानकारी कम करने में सक्षम होना चाहिए।
"x86_64-अज्ञात-लिनक्स-gnu" का क्या हिस्सा आप '-मार्क' के साथ उपयोग कर सकते हैं? –
पहला भाग: 'x86_64'। लेकिन यह एक सामान्य है। जीसीसी मैनुअल में एक पूर्ण सूची मिल सकती है: https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/x86-Options.html#x86- विकल्प। – rubenvb
मुझे लगता है कि उत्तर कोई समकक्ष नहीं है। या तो आप -march=
निर्दिष्ट नहीं करते हैं और संकलक आर्किटेक्चर के न्यूनतम निर्देश सेट का उपयोग करता है, या आप -march=
निर्दिष्ट करते हैं और यह आपके द्वारा पूछे जाने वाले सीपीयू मॉडल की विशेषताओं का उपयोग करता है। तो -march=
विकल्प लिखने का कोई तरीका नहीं है जो -march
विकल्प को छोड़कर बराबर है।
शायद अगर आप बताते हैं कि इस सवाल पर हम क्या सवाल उठा सकते हैं।
मैं GCC mailing list कि डिफ़ॉल्ट प्रिंट -march
और mtune
मानकों के आधार पर इस मणि पाया:
$ echo | gcc -v -E - 2>&1 | grep cc1
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.0/cc1 -E -quiet -v - -mtune=generic -march=x86-64
मूल रूप से, आप stdin से एक खाली फ़ाइल संकलन कर रहे हैं और ऐसा करते समय, आप आदेशों को मुद्रित करें।
यह इंगित करने के लिए समझ में आता है कि '-m32' और' -m64' का उपयोग 'gcc' आमंत्रण पर 32-बिट या 64-बिट (डिफ़ॉल्ट) लक्ष्य के लिए पूछने के लिए किया जा सकता है। – 0xC0000022L
आप दिए गए <type>
के वर्तमान विकल्प मानों को सूचीबद्ध करने के लिए gcc -Q --help=<type>
का उपयोग कर सकते हैं। इस प्रकार:
$ gcc -Q --help=target | grep march
-march= x86-64
$ gcc -m32 -Q --help=target | grep march
-march= i686
$ i686-w64-mingw32-gcc -Q --help=target | grep march
-march= pentiumpro
संपादित करें: असल में, इस विकल्प के रूप में आम तौर पर ऐसा लगता है के रूप में उपयोगी नहीं है क्योंकि लक्ष्य विशिष्ट चूक are not reflected in the output।
- 1. PHP - वर्तमान यूआरएल प्राप्त करना
- 2. आईसीसी बनाम जीसीसी - अनुकूलन और सीपीयू आर्किटेक्चर
- 3. वर्तमान मॉडल व्यू मैट्रिक्स प्राप्त करना
- 4. चेकबॉक्स पर वर्तमान मूल्य प्राप्त करना
- 5. WPF नियंत्रणों का वर्तमान आकार प्राप्त करना
- 6. विंडोज प्रमाणीकरण - वर्तमान उपयोगकर्ता नाम प्राप्त करना
- 7. वर्तमान यूआरएल से #id प्राप्त करना
- 8. XmlReader से वर्तमान स्थिति प्राप्त करना
- 9. दिए गए सीपीयू आर्किटेक्चर पर ऑप्टिमाइज़ेशन के लिए जीसीसी विकल्प
- 10. आर्किटेक्चर 'i386'
- 11. आर्किटेक्चर 'armv7'
- 12. जीसीसी एलडी: आर्किटेक्चर के लिए प्रतीक नहीं मिला x86_64
- 13. मैक ओएस एक्स 10.8 पर जीसीसी 4.8 "आर्किटेक्चर x86_64:"
- 14. एआरएम आर्किटेक्चर में कॉलिंग फ़ंक्शन का जीसीसी रिटर्न पता
- 15. सेकंड में वर्तमान समय प्राप्त करें
- 16. जीसीसी
- 17. जावास्क्रिप्ट: वर्तमान पृष्ठ प्राप्त करें वर्तमान स्रोत
- 18. वर्तमान वॉलपेपर प्राप्त करें
- 19. वर्तमान नोटिफिकेशन प्राप्त करें
- 20. वर्तमान ओएस और आर्किटेक्चर के लिए बीसीपीएल कंपाइलर/दुभाषिया?
- 21. आर्किटेक्चर x86_64 के लिए अनिर्धारित प्रतीकों: मुझे किस आर्किटेक्चर का उपयोग करना चाहिए?
- 22. जावास्क्रिप्ट के साथ वर्तमान माउस कॉर्ड प्राप्त करना संभव है?
- 23. वर्तमान प्रकार को स्थिर, सामान्य विधि में प्राप्त करना?
- 24. सीएसएस - वर्तमान में "मूल्य" और "जोड़ने" प्राप्त करना संभव है?
- 25. क्रॉस डोमेन में iframe वर्तमान src url प्राप्त करना
- 26. कोको: स्क्रीन पर वर्तमान माउस स्थिति प्राप्त करना
- 27. एंड्रॉइड एप्लिकेशन में वर्तमान समय क्षेत्र प्राप्त करना
- 28. एंड्रॉइड - विश्वसनीय रूप से वर्तमान स्थान प्राप्त करना
- 29. वर्तमान उपयोगकर्ता के लिए नेटवर्क क्रेडेंशियल प्राप्त करना (सी #)
- 30. सी में वर्तमान लोकेल का अक्षरसेट प्राप्त करना?
क्या 'gcc -v' पर्याप्त जानकारी प्रदान करता है? – Jens