2010-12-06 41 views
2

J'ai de mauvais Makefile (s) d'une grande distribution de logiciel groupée. Dans un certain point compilateur toujours "oublie" que je veux compiler dans le programme 32 bits. Cela fait que la partie des programmes a des bibliothèques de 64 bits et que d'autres ont des bibliothèques de 32 bits.Comment forcer/usr/bin/gcc ->/usr/bin/gcc -m32?

Comment puis-je forcer l'option -m32 chaque fois que j'exécute gcc?

br,
Juha

post-scriptum Mon environnement est mixte 32/64 bits (macbook5.1, snow léopard). Alternativement: Comment puis-je faire mon système purement 32 ou 64 bits?

modifier: accent sur les mauvais Makefile qui remplacent les variables globales. C'est pourquoi j'ai choisi le hack qui fonctionne.

Répondre

5

Si vous voulez un hack de merde, vous pouvez remplacer/usr/bin/gcc avec ce script shell:

#!/bin/bash 
/usr/bin/gcc-4.whatever -m32 "[email protected]" 
+0

+1, j'étais sur le point de le suggérer. Si cela ne fonctionne pas, l'OP devra pirater le 'Makefile's en forme. –

+0

Ok, ça marche ... j'ai juste oublié "chmod + x" – Juha

+0

Cela fonctionne généralement bien, mais il y a parfois des éléments \ -protected. $ * les enveloppe avec "" qui échoue. Des idées pour résoudre ce problème? – Juha

6

Définissez votre variable d'environnementsur l'indicateur -m32.

export CFLAGS="-m32"

+0

+1 pour suggérer la bonne voie. Je me demande si cela fonctionnera avec les Makefiles cassés. – nmichaels

+0

Je voudrais cette solution, mais cela ne fonctionne pas. – Juha

+1

@Juha @Nathon - ouais, j'ai pensé à ce problème plus après que Nathon a commenté. La variable d'environnement 'CFLAGS' est utilisée par les différents outils de construction (' configure', 'make') mais je pense que dans le cas de Juha, ses makefiles sont des drapeaux qui ne sont pas utilisés ou pas du tout à un moment de la compilation. – birryree