2010-12-08 13 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

どのようにしてgccをビルドしましたか? - 4.5.1は標準アップルではありません – Mark

+0

macportsを使用しています:sudo port install gcc45 – simpatico

答えて

9

-archオプションはgccにアップルの拡張の一部です。アップルのデベロッパーツールXcodeが提供するgccを使用する必要があります。

+0

どうすれば修正できますか?私は今でも同様の問題を抱えています –

+0

私はコマンドラインツールをインストールしましたが、まだこの問題があります。 – MrROY

+0

MrRoy: 'which g ++'と 'g ++ --version'は何を表示しますか?最初のものは '/ usr/bin/g ++'で、OS X 10.8上の現在のXcode 4.6.3では 'i686-apple-darwin11-llvm-g ++ - 4.2(GCC)4.2.1でなければなりません。アップル社のビルド5658)(LLVMビルド2336.11.00) '。 –

1

-archのオプションは、Apple提供のバージョンgccのみです。 CFLAGS(環境、メークファイル、または設定オプションで設定される可能性があります)を変更して、代わりに-marchまたは-m32を使用してください。たとえば:

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

違いは-marchは一度に1を生成し、一方、あなたは、ユニバーサルバイナリを生成するために、複数の-archオプションを指定できることのようです。

0

GCCのmacportsバージョンは、-archフラグをサポートしていません。 AppleのGCCは実際のコンパイラを呼び出す前にいくつかの特別なフラグを尊重している実際のgccのラッパーです。 -archフラグは、これらのフラグの1つです。指定された各アーチに対して適切なコンパイラを呼び出し、次にlipoを使用してすべてのオブジェクトファイルをまとめて "太い"オブジェクトファイルにマッシュします。

MacCC GCCで動作するこのApple GCCラッパーを取得するのにちょっと時間を費やしました。かかわらず、機械の、

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

1

このエラーは、多くの形態で存在するかのタイプを構築する:あなたは詳細をしたい場合は、ここでそれらを見つけることができます。 解決策は、一般に、正しいクロスコンパイラを含むようにPATH変数とCROSS_COMPILE変数を変更することです。

関連する問題