2010-08-30 15 views
19

Dovrei compilare un programma scritto in C attraverso un Makefile. Dovrei inserire nel Makefile, alcune opzioni, ad esempio: -O2, -march=i686. Come posso inserire questa opzione nel Makefile senza scrivere in essa?Aggiungere l'opzione del compilatore senza modificare Makefile

+0

Possiamo vedere che cosa avete già nel vostro Makefile? – Starkey

+0

Deve essere un Makefile generico – Gnufabio

+1

http://stackoverflow.com/questions/1250608/passing-a-gcc-flag-through-makefile –

risposta

19

È necessario utilizzare una macro come CFLAGS. Controlla GNU GCC documentation.

Qualcosa del genere dovrebbe funzionare:

CFLAGS := $(CFLAGS) -O2 -march=i686 

Oppure, se si preferisce non modificare l'uso makefile:

make CFLAGS='-O2 -march=i686' 

Le altre opzioni saranno raccolti automaticamente però. Vedi overriding variables.

+6

Tenere presente che è possibile creare CFLAGS da sub-macro complessi. Potrebbe essere meglio ignorare uno dei sub-macros. Se non c'è un'opzione contraddittoria in CFLAGS, spesso uso ''make CC =" gcc -O2 -march = i686 "' "per ottenere il risultato desiderato. –

+0

Dove lavoro, utilizziamo le macro dedicate definite dall'utente solo per una cosa del genere: ADDED_CFLAGS, ADDED_ASMFLAGS, ADDED_EXEFLAGS, .... – Sparky

+0

Talvolta nel file make esistono variabili che consentono di aggiungere ulteriori flag senza sovrascrivere nulla: per esempio 'XCFLAGS',' XLIBS'. Guarda il makefile. –

Problemi correlati