2009-11-18 11 views
11

Apple's gcc 4.2.1 doc के अनुसार:एप्पल जीसीसी, -arch i386 और -m32 के बीच अंतर क्या है?

-arch मेहराब निर्दिष्ट लक्ष्य वास्तुकला मेहराब के लिए
संकलित करें। स्वीकार्य मूल्यों 'i386', 'x86_64', 'पीपीसी' और 'ppc64' कर रहे हैं। एकाधिक विकल्प काम करते हैं, और प्रत्यक्ष संकलक "सार्वभौमिक" सहित -arch साथ निर्दिष्ट प्रत्येक वास्तुकला के लिए वस्तु कोड बाइनरी निर्माण करने के लिए। यह विकल्प तभी काम करता है कोडांतरक और पुस्तकालयों में उपलब्ध हैं निर्दिष्ट प्रत्येक वास्तुकला के लिए । (सेब केवल)

तो क्या इन दो कॉल के बीच का अंतर है:

gcc -arch i386 program.c

और

gcc -m32 program.c

सिर्फ इतना है कि -arch अधिक शक्तिशाली है के रूप में यह अधिक सुविधाजनक है यह है और जब कई archs specifiying सार्वभौमिक binaries उत्पादन कर सकते हैं?

उत्तर

9

मुझे यकीन है कि लेकिन आदमी पृष्ठ के रूप में आप कर मैं इसी तरह के निष्कर्ष के लिए मिलता है पढ़ने से नहीं कर रहा हूँ।

मुझे लगता है कि केवल वास्तविक अंतर यह है कि -arch सार्वभौमिक binaries बनाने के लिए इस्तेमाल किया जा सकता है।

इस रूप में सार्वभौमिक binaries

gcc -arch i386 -arch x86_64 foo.c 

बनाने के लिए काम करता है लेकिन आप वास्तव में यकीन है कि क्या निम्नलिखित के शब्दों होना चाहिए नहीं हो सकता (वे शायद भी अवैध वाक्य रचना कर रहे हैं)। विशेष रूप से तीसरे अवैध होना चाहिए के रूप में आदमी पृष्ठों 32- या 64-बिट वातावरण के लिए के लिए उत्पन्न करने के लिए कहते हैं।

gcc -m32 -arch i386 -arch x86_64 foo.c 
gcc -m64 -arch i386 -arch x86_64 foo.c 
gcc -m32 -m64 -arch i386 -arch x86_64 foo.c 
-m32 
-m64 
    Generate code for a 32-bit or 64-bit environment. The 32-bit environment 
    sets int, long and pointer to 32 bits and generates code that runs on any 
    i386 system. The 64-bit environment sets int to 32 bits and long and 
    pointer to 64 bits and generates code for AMDs x86-64 architecture. 
    For darwin only the -m64 option turns off the -fno-pic and 
    -mdynamic-no-pic options. 

-arch //already included in question 
संबंधित मुद्दे