2016-04-12 16 views
0

Bir çevrimiçi eğitici kullanarak bir test makefile yaptım. Çalışıyor, ama ayrıca tüm .o dosyalarının belirli bir alt klasöre gitmesini istiyorum. Makefile kullanarak bunu yapmanın bir yolu var mı? İşte şimdiye kadar sahip olduğum şey.Nesne dosyalarını belirli bir klasöre göndermek için MakeFile'da Seçenek Ayarla

CC=gcC# specifies the compiler to use. 

CFLAGS=-I. # specifies to look in the current directory. 

DEPS = path_tools.h # DEPS stores each .h file to be added. 

OBJ = checkpath.o path_tools.o # OBJ stores each object file to compile. 

%.o: %.c $(DEPS) 

     $(CC) -c -o [email protected] $< $(CFLAGS) 

checkpath.exe: $(OBJ) 

     gcc -o [email protected] $^ $(CFLAGS) 
oluşturabilir ve sonuçlar koymak makefile parametre geçirmek için için makefile için klasörün yolunu geçebilir
+0

Geçerli makefile ne yaptığını biliyor musunuz? Ve nasıl yapıyor? –

cevap

1

GNU için bu Makefile'yi kullanabilirsiniz.

 

    ODIR:=obj 
    CC:=gcc 
    CFLAGS:=-I. 
    DEPS:=path_tools.h 
    OBJ_:= checkpath.o path_tools.o 
    OBJ:=$(addprefix $(ODIR)/, $(OBJ_)) 
    PROG=checkpath.exe 
    all:$(PROG) 
    $(OBJ): $(DEPS) 
    $(ODIR)/%.o: %.c 
     $(CC) -c -o [email protected] $< $(CFLAGS) 
    $(PROG): $(OBJ) 
     $(CC) -o [email protected] $^ $(CFLAGS) 
    clean: 
     rm -f $(OBJ) $(PROG) 

+0

Teşekkürler. Bunu henüz yapamam: matt @ matt-VirtualBox: ~/code $ make -f makefile_Example_new make: *** 'object/checkpath.o' tarafından istenen 'path_tools.h' hedefini yapmak için kural yok. . Durdurmak. – netcat

+0

Teşekkürler. Bu mükemmel çalışıyor. Yanlış bir alt klasör vardı. – netcat

1

: En-yol

makefile kullanmak için =

yapmak Dpath. :

$ (Dpath)

bu yolu oluşturma ve bir yol olarak * .o dosyaların kafasına ekleyin.

İlgili konular