2012-12-27 1 views
0

BlockquoteRaspbain G ++ Compiler arrêt sur -M commandes

Bonjour, Je suis en train de compiler la dernière source de la poudre Toy mais mon compilateur (G ++ avec scons) se bloque à chaque fois qu'il frappe un commande avec --m dedans.

journal Crash:

scons --lin --release --sse2 
scons: Reading SConscript files ... 
Checking for C library fftw3f... (cached) yes 
Checking for C library bz2... (cached) yes 
Checking for C library z... (cached) yes 
Checking for C header file bzlib.h... (cached) yes 
Checking for C library lua... (cached) no 
Checking for C library lua5.1... (cached) yes 
scons: done reading SConscript files. 
scons: Building targets ... 
^[[Ag++ -o build/src/Format.o -c -w -std=c++98 -fkeep-inline-functions -sse2 -O3 -ftree-vectorize -funsafe-math-optimizations -ffast-math -fomit-frame-pointer -funsafe-loop-optimizations -Wunsafe-loop-optimizations -D_GNU_SOURCE=1 -D_REENTRANT -DLUACONSOLE -DGRAVFFT -D_GNU_SOURCE -DUSE_STDINT -D_POSIX_C_SOURCE=200112L -DUSE_SDL -DLIN -DX86 -DX86_SSE2 -I/usr/include/SDL -I/usr/include/lua5.1 -Ibuild/src -Ibuild/data -Ibuild/generated build/src/Format.cpp 
g++: error: unrecognized option â-msse2â 
scons: *** [build/src/Format.o] Error 1 
scons: building terminated because of errors. 

Pourquoi serait-ce qui se passe? J'ai également dû supprimer la commande -m32 pour la compiler.

+0

Pouvez-vous afficher les scripts SCons associés, s'il vous plaît. – Brady

+0

Aussi, quelle version de g ++ utilisez-vous? Si vous exécutez manuellement les commandes g ++ sur la ligne de commande (sans SCons), est-ce qu'il plante toujours? Si oui, alors cela n'a rien à voir avec SCons. – Brady

+0

g ++ (Debian 4.6.3-12 + rpi1) 4.6.3 Oui, si j'utilise G ++ sur la ligne comamnd sans scons, il se bloque sur la commande -m32 – Candunc

Répondre

-1

Qu'est-ce que^[[A? Avez-vous des caractères non imprimables dans votre fichier makefile? Pouvez-vous faire écho tous les paramètres un par un pour identifier qui contient ces caractères étranges?

+0

Il a probablement frappé une touche pendant la compilation. –

+0

Il n'y a pas de makefiles impliqués ici, mais plutôt SCons. Ce n'est pas une réponse. Ces sortes de questions devraient être laissées comme un commentaire sur la question originale. – Brady

+0

Oui, j'ai probablement frappé une touche fléchée lors de la compilation accidentellement. Il n'y a pas de caractères invisibles dans le SConscript, et la seule façon de le compiler est de # sortir les lignes avec --m32. C'est le faire une compilation correcte et des erreurs sur la ligne env.Append (CCFLAGS = '- msse2') – Candunc

1

Je soupçonne fortement que c'est parce que l'option -sse2 demande à g ++ de générer SSE2, qui sont des instructions SIMD pour l'architecture x86 d'Intel. La carte Raspberry Pi est une architecture d'ordinateur complètement différente (ARM) et ne supporte pas SSE2. L'équivalent ARM de SSE2 est NEON, mais NEON est disponible pour le ARM utilisé dans RPi.

Je pense que pour les options que g ++ ne reconnaît pas, il essaie de préfixer avec un autre drapeau (dans ce cas -m, mais j'ai vu -f avant) pour voir si c'est un synonyme.

Dans votre cas, sse2 n'a aucun sens sur le Raspberry Pi, et pour l'exemple ci-dessus, c'est le problème.

Questions connexes