2010-11-03 4 views
0

Pourquoimakefile mettre objs dans le répertoire séparé

$(OBJDIR)\%.o:$(SRDDIR)\%.s 
    $(GCC) -c -g -I$(SRCDIR) $(ASFLAGS) $< -o [email protected] 

$(OBJDIR)\%.o:$(SRDDIR)\%.c 
    $(GCC) -c -g -I$(SRCDIR) $(CFLAGS) $< -o [email protected] 

donne avertissement (dit ignorer la première règle) où que

%.o:%.s 
    $(GCC) -c -g -I$(SRCDIR) $(ASFLAGS) $< -o [email protected] 

%.o:%.c 
    $(GCC) -c -g -I$(SRCDIR) $(CFLAGS) $< -o [email protected] 

fonctionne très bien, mais je vais avoir toutes mes sources et obj dans le même répertoire. Je voudrais mettre les objs (générés à partir des fichiers d'assemblage et des fichiers c) dans un répertoire séparé (et j'utilise make sur windows).

+0

Utilisez un retrait de quatre espaces pour obtenir une sortie monospace. En général, vous devriez utiliser '$ (CC)' pour appeler le compilateur, pas '$ (GCC)'. –

+0

Est-ce supposé être "SRCDIR" au lieu de "SRDDIR"? –

Répondre

0

L'indicateur -o de GCC détermine l'emplacement du fichier de sortie.

Donc, cela peut fonctionner si vous changez:

%.o:%.s $(GCC) -c -g -I$(SRCDIR) $(ASFLAGS) $< -o [email protected] 

À

%.o:%.s $(GCC) -c -g -I$(SRCDIR) $(ASFLAGS) $< -o myoutputdir/[email protected] 
1

Essayez d'utiliser des barres obliques ("/") au lieu de les arriérés ("de \").

Questions connexes