Pourquoi je reçois cc1plus: erreur: option de ligne de commande non reconnue "-arch"?
/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)
Ce simple d'un fichier:
#include <stdlib.h>
int main(int argc, char** argv) {
return (EXIT_SUCCESS);
}
source d'informationauteur simpatico
Vous devez vous connecter pour publier un commentaire.
La
-arch
option fait partie des extensions Apple àgcc
. Vous devez utiliser legcc
fournies par les Outils de développement Apple,Xcode
.La
-arch
option est seulement dans les Apple-version degcc
. ChangementCFLAGS
(ce qui pourrait être réglé par l'intermédiaire de votre environnement, de votre makefile, ou de vos options de configuration) de sorte qu'il utilise-march
ou-m32
à la place. Par exemple:La différence semble être que vous pouvez spécifier plusieurs
-arch
options pour générer des binaires universels, alors que-march
génère seulement un à la fois.Cette erreur existe dans de nombreuses formes, quelle que soit la machine ou le type de build.
La solution, en général, est de changer le CHEMIN d'accès et CROSS_COMPILE les variables à inclure le bon compilateur croisé.
La macports version de GCC ne prend pas en charge l'arc-drapeau. Il s'avère que Apple GCC est un wrapper autour de la vraie gcc qui met à l'honneur quelques-uns des indicateurs avant d'appeler le réel compilateur. L'arc-drapeau est l'un de ces drapeaux. Il appelle le compilateur approprié pour chacun des archs spécifié, puis utilise des lipo pour écraser tous les fichiers de l'objet de retour ensemble dans un "gros" fichier objet.
Je viens de passer un peu de temps à obtenir ce qu'Apple GCC wrapper de travail avec macports GCC. Si vous vous voulez plus de détails vous pouvez les trouver ici:
http://thecoderslife.blogspot.com/2015/07/building-with-gcc-46-and-xcode-4.html