2010-12-08 15 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) 

bir dosyanın Bu basit:Neden cc1plus olsun: error: tanınmayan komut satırı seçeneği "-arch"?

#include <stdlib.h> 

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

    return (EXIT_SUCCESS); 
} 
+2

Nasıl gcc ürettiniz - 4.5.1 standart bir Apple değil – Mark

+0

macports kullanarak: sudo port gcc45 yüklemek – simpatico

cevap

9

-arch seçenek gcc Apple uzantıları parçasıdır. Apple'ın Geliştirici Araçları, Xcode tarafından sağlanan gcc'u kullanmanız gerekir.

+0

nasıl düzeltilir? Şimdi benzer bir sorun var –

+0

Komut satırı araçlarını yükledim, ancak yine de bu sorunla karşılaştım. – MrROY

+0

MrRoy: Hangi g ++ 've' g ++ --version' nedir? İlk, '/ usr/bin/g ++' olmalı ve OS X 10.8 üzerinde mevcut Xcode 4.6.3 ile ikincisi i686-apple-darwin11-llvm-g ++ - 4.2 (GCC) 4.2.1 olmalıdır. Apple Inc., 5658) (LLVM build 2336.11.00) 'ı inşa etti. –

1

-arch seçeneği yalnızca gcc'un Apple tarafından sağlanan sürümünde bulunur. CFLAGS'u (ortamınız, makefile veya yapılandırma seçenekleriniz aracılığıyla ayarlanabilir) değiştirin, böylece -march veya -m32 kullanın. Örneğin:

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

fark -march sadece birer birer üretir, oysa evrensel ikililer oluşturmak için birden -arch seçenekleri belirtebildiklerinden gibi görünüyor.

0

GCC'nin macports sürümü -arch bayrağını desteklemiyor. Sonuç olarak, Apple'ın GCC'si gerçek derleyiciyi aramadan önce birkaç özel bayrağı onurlandıran gerçek gcc etrafındaki sarıcıdır. -ark bayrağı bu bayraklardan biridir. Belirtilen her bir arşiv için uygun derleyiciyi çağırır ve ardından tüm nesne dosyalarını bir "yağ" nesne dosyasına birleştirmek için lipo kullanır.

Bu Apple GCC sarmalayıcısını GCC makrosuyla çalışırken biraz zaman harcadım. ne olursa olsun makinenin,

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

1

Bu hata çeşitli biçimlerde var veya türünü oluşturmak: Eğer ayrıntılı bilgi isterseniz buradan bulabilirsiniz. Genel olarak çözüm, doğru çapraz derleyiciyi içerecek şekilde PATH ve CROSS_COMPILE değişkenlerini değiştirmektir.

İlgili konular