2010-12-08 10 views
10
/usr/bin/make -f nbproject/Makefile-Debug.mk SUBPROJECTS= .build-conf 
/usr/bin/make -f nbproject/Makefile-Debug.mk dist/Debug/GNU-MacOSX/cppapplication_1 
mkdir -p build/Debug/GNU-MacOSX 
rm -f build/Debug/GNU-MacOSX/main.o.d 
g++ -arch i386 -c -g -MMD -MP -MF build/Debug/GNU-MacOSX/main.o.d -o build/Debug/GNU-MacOSX/main.o main.cpp 
cc1plus: error: unrecognized command line option "-arch" 
make[2]: *** [build/Debug/GNU-MacOSX/main.o] Error 1 
make[1]: *** [.build-conf] Error 2 
make: *** [.build-impl] Error 2 
BUILD FAILED (exit value 2, total time: 311ms) 

simpatico$ g++ -v 
Using built-in specs. 
COLLECT_GCC=g++ 
COLLECT_LTO_WRAPPER=/opt/local/libexec/gcc/x86_64-apple-darwin10/4.5.1/lto-wrapper 
Target: x86_64-apple-darwin10 
Configured with: ../gcc-4.5.1/configure --prefix=/opt/local --build=x86_64-apple-darwin10 --enable-languages=c,c++,objc,obj-c++,fortran,java --libdir=/opt/local/lib/gcc45 --includedir=/opt/local/include/gcc45 --infodir=/opt/local/share/info --mandir=/opt/local/share/man --datarootdir=/opt/local/share/gcc-4.5 --with-local-prefix=/opt/local --with-system-zlib --disable-nls --program-suffix=-mp-4.5 --with-gxx-include-dir=/opt/local/include/gcc45/c++/ --with-gmp=/opt/local --with-mpfr=/opt/local --with-mpc=/opt/local --enable-stage1-checking --disable-multilib --enable-fully-dynamic-string 
Thread model: posix 
gcc version 4.5.1 (GCC) 

एक फ़ाइल की यह सरल:मुझे cc1plus क्यों मिलता है: त्रुटि: अपरिचित कमांड लाइन विकल्प "-arch"?

#include <stdlib.h> 

int main(int argc, char** argv) { 

    return (EXIT_SUCCESS); 
} 
+2

आपने जीसीसी कैसे बनाया - 4.5.1 मैकपोर्ट का उपयोग कर एक मानक ऐप्पल एक – Mark

+0

नहीं है: sudo port gcc45 – simpatico

उत्तर

9

-arch विकल्प gcc को एप्पल एक्सटेंशन का हिस्सा है। आपको एप्पल के डेवलपर टूल्स, Xcode द्वारा आपूर्ति की गई gcc का उपयोग करने की आवश्यकता है।

+0

इसे कैसे ठीक करें? धन्यवाद। मुझे अब भी एक ही समस्या मिली है –

+0

मैंने कमांड लाइन टूल्स इंस्टॉल किए हैं, लेकिन फिर भी यह समस्या मिलती है। – MrROY

+0

श्री रॉय: 'कौन सा जी ++' और 'जी ++ - संस्करण' दिखाता है? पहला '/ usr/bin/g ++' होना चाहिए और ओएस एक्स 10.8 पर वर्तमान एक्सकोड 4.6.3 के साथ, उत्तरार्द्ध 'i686-apple-darwin11-llvm-g ++ - 4.2 (जीसीसी) 4.2.1 होना चाहिए (इसके आधार पर ऐप्पल इंक 5658 का निर्माण) (एलएलवीएम 2336.11.00 बिल्ड) '। –

1

-arch विकल्प केवल gcc के ऐप्पल-प्रदत्त संस्करण में है। CFLAGS बदलें (जो आपके पर्यावरण, आपके मेकफ़ाइल या आपके कॉन्फ़िगरेशन विकल्पों के माध्यम से सेट किया जा सकता है) इसलिए यह -march या -m32 का उपयोग करता है। उदाहरण के लिए:

 
configure CFLAGS='-m32 -O2' CC=gcc-4.5 

अंतर यह है कि आप जबकि -march केवल एक समय में एक उत्पन्न करता है सार्वभौमिक binaries उत्पन्न करने के लिए कई -arch विकल्प निर्दिष्ट कर सकते, हो रहा है।

0

जीसीसी का मैक्सपोर्ट संस्करण मार्च ध्वज का समर्थन नहीं करता है। चूंकि यह पता चला है कि ऐप्पल का जीसीसी असली जीसीसी के चारों ओर एक रैपर है जो असली कंपाइलर को कॉल करने से पहले कुछ विशेष झंडे का सम्मान करता है। इन झंडे में से एक झंडा है। यह निर्दिष्ट प्रत्येक आर्क के लिए उचित कंपाइलर को कॉल करता है और फिर सभी ऑब्जेक्ट फ़ाइलों को एक साथ "वसा" ऑब्जेक्ट फ़ाइल में मैश करने के लिए लिपो का उपयोग करता है।

मैंने मैकपोर्ट जीसीसी के साथ काम कर रहे इस ऐप्पल जीसीसी रैपर को थोड़ी देर बिताया। आपको जानकारी चाहते हैं तो आप उन्हें यहाँ पा सकते हैं: कई रूपों में

http://thecoderslife.blogspot.com/2015/07/building-with-gcc-46-and-xcode-4.html

1

यह त्रुटि मौजूद है, मशीन की परवाह किए बिना या प्रकार का निर्माण। सामान्य रूप से समाधान सही क्रॉस कंपाइलर को शामिल करने के लिए पथ और CROSS_COMPILE चर बदलना है।

संबंधित मुद्दे